pg_partitioning 0.0.1
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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +97 -0
- data/Rakefile +23 -0
- data/config/locales/en.yml +28 -0
- data/lib/generators/partitioning_generator.rb +18 -0
- data/lib/pg_partitioning/input_master.rb +83 -0
- data/lib/pg_partitioning/partitioning_master.rb +78 -0
- data/lib/pg_partitioning/printer.rb +28 -0
- data/lib/pg_partitioning/strategies/base.rb +72 -0
- data/lib/pg_partitioning/strategies/date.rb +73 -0
- data/lib/pg_partitioning/strategies/equal.rb +43 -0
- data/lib/pg_partitioning/strategies/step.rb +57 -0
- data/lib/pg_partitioning/version.rb +3 -0
- data/lib/pg_partitioning.rb +4 -0
- data/lib/tasks/pg_partitioning_tasks.rake +4 -0
- data/spec/db_helpers.rb +36 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/bandit.rb +4 -0
- data/spec/dummy/app/models/crime.rb +3 -0
- data/spec/dummy/app/models/gang.rb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/bin/setup +29 -0
- data/spec/dummy/config/application.rb +32 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +28 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +41 -0
- data/spec/dummy/config/environments/production.rb +79 -0
- data/spec/dummy/config/environments/test.rb +42 -0
- data/spec/dummy/config/initializers/assets.rb +11 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +56 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/migrate/20160306173540_create_gangs.rb +9 -0
- data/spec/dummy/db/migrate/20160306174017_create_bandits.rb +12 -0
- data/spec/dummy/db/migrate/20160306174042_create_crimes.rb +10 -0
- data/spec/dummy/db/schema.rb +47 -0
- data/spec/dummy/log/development.log +3421 -0
- data/spec/dummy/log/production.log +0 -0
- data/spec/dummy/log/test.log +154834 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/factories/bandits.rb +23 -0
- data/spec/factories/crimes.rb +6 -0
- data/spec/factories/gangs.rb +5 -0
- data/spec/input_master_spec.rb +74 -0
- data/spec/models/bandit_spec.rb +13 -0
- data/spec/models/crime_spec.rb +10 -0
- data/spec/models/gang_spec.rb +10 -0
- data/spec/partitioning_master_spec.rb +156 -0
- data/spec/rails_helper.rb +67 -0
- data/spec/shared_examples.rb +28 -0
- data/spec/spec_helper.rb +92 -0
- metadata +213 -0
@@ -0,0 +1,3421 @@
|
|
1
|
+
[1m[36m (165.8ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
2
|
+
[1m[35m (110.3ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
3
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.9ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
4
|
+
Migrating to CreateGangs (20160306173540)
|
5
|
+
[1m[35m (0.4ms)[0m BEGIN
|
6
|
+
[1m[36m (276.8ms)[0m [1mCREATE TABLE "gangs" ("id" serial primary key, "title" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
7
|
+
[1m[35mSQL (0.8ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306173540"]]
|
8
|
+
[1m[36m (59.1ms)[0m [1mCOMMIT[0m
|
9
|
+
Migrating to CreateBandits (20160306174017)
|
10
|
+
[1m[35m (0.5ms)[0m BEGIN
|
11
|
+
[1m[36m (152.2ms)[0m [1mCREATE TABLE "bandits" ("id" serial primary key, "name" character varying, "specialization" character varying, "gang_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
12
|
+
[1m[35m (91.9ms)[0m CREATE INDEX "index_bandits_on_gang_id" ON "bandits" ("gang_id")
|
13
|
+
[1m[36m (11.5ms)[0m [1mALTER TABLE "bandits" ADD CONSTRAINT "fk_rails_7411a14fb1"
|
14
|
+
FOREIGN KEY ("gang_id")
|
15
|
+
REFERENCES "gangs" ("id")
|
16
|
+
[0m
|
17
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174017"]]
|
18
|
+
[1m[36m (57.5ms)[0m [1mCOMMIT[0m
|
19
|
+
Migrating to CreateCrimes (20160306174042)
|
20
|
+
[1m[35m (0.6ms)[0m BEGIN
|
21
|
+
[1m[36m (92.2ms)[0m [1mCREATE TABLE "crimes" ("id" serial primary key, "title" character varying, "bandit_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
22
|
+
[1m[35m (69.5ms)[0m CREATE INDEX "index_crimes_on_bandit_id" ON "crimes" ("bandit_id")
|
23
|
+
[1m[36m (4.6ms)[0m [1mALTER TABLE "crimes" ADD CONSTRAINT "fk_rails_ca9866c40c"
|
24
|
+
FOREIGN KEY ("bandit_id")
|
25
|
+
REFERENCES "bandits" ("id")
|
26
|
+
[0m
|
27
|
+
[1m[35mSQL (0.6ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174042"]]
|
28
|
+
[1m[36m (13.4ms)[0m [1mCOMMIT[0m
|
29
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.5ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
30
|
+
[1m[36m (6.4ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
31
|
+
FROM pg_constraint c
|
32
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
33
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
34
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
35
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
36
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
37
|
+
WHERE c.contype = 'f'
|
38
|
+
AND t1.relname = 'bandits'
|
39
|
+
AND t3.nspname = ANY (current_schemas(false))
|
40
|
+
ORDER BY c.conname
|
41
|
+
[0m
|
42
|
+
[1m[35m (7.6ms)[0m SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
43
|
+
FROM pg_constraint c
|
44
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
45
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
46
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
47
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
48
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
49
|
+
WHERE c.contype = 'f'
|
50
|
+
AND t1.relname = 'crimes'
|
51
|
+
AND t3.nspname = ANY (current_schemas(false))
|
52
|
+
ORDER BY c.conname
|
53
|
+
|
54
|
+
[1m[36m (6.0ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
55
|
+
FROM pg_constraint c
|
56
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
57
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
58
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
59
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
60
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
61
|
+
WHERE c.contype = 'f'
|
62
|
+
AND t1.relname = 'gangs'
|
63
|
+
AND t3.nspname = ANY (current_schemas(false))
|
64
|
+
ORDER BY c.conname
|
65
|
+
[0m
|
66
|
+
[1m[36m (337.6ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
67
|
+
DECLARE
|
68
|
+
colname text := ‘specialization’;
|
69
|
+
colval text := NEW."specialization";
|
70
|
+
tblname text := 'bandits_' || colval;
|
71
|
+
BEGIN
|
72
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
73
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
74
|
+
END IF;
|
75
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
76
|
+
RETURN NULL;
|
77
|
+
END;
|
78
|
+
$$ LANGUAGE plpgsql;[0m
|
79
|
+
[1m[36m (88.4ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
80
|
+
DECLARE
|
81
|
+
colname text := ‘specialization’;
|
82
|
+
colval text := NEW."specialization";
|
83
|
+
tblname text := 'bandits_' || colval;
|
84
|
+
BEGIN
|
85
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
86
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
87
|
+
END IF;
|
88
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
89
|
+
RETURN NULL;
|
90
|
+
END;
|
91
|
+
$$ LANGUAGE plpgsql;[0m
|
92
|
+
[1m[35m (96.8ms)[0m CREATE TRIGGER insert_bandits_trigger
|
93
|
+
BEFORE INSERT ON bandits
|
94
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_trigger();
|
95
|
+
[1m[36m (21.1ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
96
|
+
DECLARE
|
97
|
+
colname text := ‘specialization’;
|
98
|
+
colval text := NEW."specialization";
|
99
|
+
tblname text := 'bandits_' || colval;
|
100
|
+
BEGIN
|
101
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
102
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
103
|
+
END IF;
|
104
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
105
|
+
RETURN NULL;
|
106
|
+
END;
|
107
|
+
$$ LANGUAGE plpgsql;[0m
|
108
|
+
[1m[35m (66.6ms)[0m CREATE TRIGGER insert_bandits_trigger
|
109
|
+
BEFORE INSERT ON bandits
|
110
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
111
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
112
|
+
[1m[35mSQL (139.1ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al"], ["specialization", "killer"], ["created_at", "2016-03-06 18:16:50.203953"], ["updated_at", "2016-03-06 18:16:50.203953"]]
|
113
|
+
[1m[36m (0.7ms)[0m [1mROLLBACK[0m
|
114
|
+
[1m[35m (17.2ms)[0m BEGIN
|
115
|
+
[1m[36mSQL (9.3ms)[0m [1mINSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["name", "Al"], ["specialization", "killer"], ["created_at", "2016-03-06 18:18:42.617682"], ["updated_at", "2016-03-06 18:18:42.617682"]]
|
116
|
+
[1m[35m (2.9ms)[0m ROLLBACK
|
117
|
+
[1m[36mBandit Load (43.6ms)[0m [1mSELECT "bandits".* FROM "bandits"[0m
|
118
|
+
[1m[36m (5.5ms)[0m [1mBEGIN[0m
|
119
|
+
[1m[35mSQL (26.0ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al"], ["specialization", "killer"], ["created_at", "2016-03-06 18:22:30.695935"], ["updated_at", "2016-03-06 18:22:30.695935"]]
|
120
|
+
[1m[36m (0.2ms)[0m [1mROLLBACK[0m
|
121
|
+
[1m[36m (138.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
122
|
+
DECLARE
|
123
|
+
colname text := specialization;
|
124
|
+
colval text := NEW.specialization;
|
125
|
+
tblname text := 'bandits_' || colval;
|
126
|
+
BEGIN
|
127
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
128
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
129
|
+
END IF;
|
130
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
131
|
+
RETURN NULL;
|
132
|
+
END;
|
133
|
+
$$ LANGUAGE plpgsql;[0m
|
134
|
+
[1m[35m (58.9ms)[0m CREATE TRIGGER insert_bandits_trigger
|
135
|
+
BEFORE INSERT ON bandits
|
136
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
137
|
+
[1m[36m (38.2ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
138
|
+
DECLARE
|
139
|
+
colname text := specialization;
|
140
|
+
colval text := NEW.specialization;
|
141
|
+
tblname text := 'bandits_' || colval;
|
142
|
+
BEGIN
|
143
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
144
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
145
|
+
END IF;
|
146
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
147
|
+
RETURN NULL;
|
148
|
+
END;
|
149
|
+
$$ LANGUAGE plpgsql;[0m
|
150
|
+
[1m[35m (16.1ms)[0m CREATE OR REPLACE TRIGGER insert_bandits_trigger
|
151
|
+
BEFORE INSERT ON bandits
|
152
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
153
|
+
[1m[36m (55.5ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
154
|
+
DECLARE
|
155
|
+
colname text := specialization;
|
156
|
+
colval text := NEW.specialization;
|
157
|
+
tblname text := 'bandits_' || colval;
|
158
|
+
BEGIN
|
159
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
160
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
161
|
+
END IF;
|
162
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
163
|
+
RETURN NULL;
|
164
|
+
END;
|
165
|
+
$$ LANGUAGE plpgsql;[0m
|
166
|
+
[1m[35m (35.9ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
167
|
+
CREATE OR REPLACE TRIGGER insert_bandits_trigger
|
168
|
+
BEFORE INSERT ON bandits
|
169
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
170
|
+
[1m[36m (91.0ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
171
|
+
DECLARE
|
172
|
+
colname text := specialization;
|
173
|
+
colval text := NEW.specialization;
|
174
|
+
tblname text := 'bandits_' || colval;
|
175
|
+
BEGIN
|
176
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
177
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
178
|
+
END IF;
|
179
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
180
|
+
RETURN NULL;
|
181
|
+
END;
|
182
|
+
$$ LANGUAGE plpgsql;[0m
|
183
|
+
[1m[35m (156.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
184
|
+
CREATE TRIGGER insert_bandits_trigger
|
185
|
+
BEFORE INSERT ON bandits
|
186
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
187
|
+
[1m[36m (0.3ms)[0m [1mBEGIN[0m
|
188
|
+
[1m[35mSQL (28.7ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al"], ["specialization", "killer"], ["created_at", "2016-03-06 18:36:57.517077"], ["updated_at", "2016-03-06 18:36:57.517077"]]
|
189
|
+
[1m[36m (0.2ms)[0m [1mROLLBACK[0m
|
190
|
+
[1m[36m (153.7ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
191
|
+
DECLARE
|
192
|
+
colname text := specialization;
|
193
|
+
colval text := NEW."specialization";
|
194
|
+
tblname text := 'bandits_' || colval;
|
195
|
+
BEGIN
|
196
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
197
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
198
|
+
END IF;
|
199
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
200
|
+
RETURN NULL;
|
201
|
+
END;
|
202
|
+
$$ LANGUAGE plpgsql;[0m
|
203
|
+
[1m[35m (29.4ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
204
|
+
CREATE TRIGGER insert_bandits_trigger
|
205
|
+
BEFORE INSERT ON bandits
|
206
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
207
|
+
[1m[36m (0.5ms)[0m [1mBEGIN[0m
|
208
|
+
[1m[35mSQL (156.8ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al"], ["specialization", "killer"], ["created_at", "2016-03-06 18:51:32.134070"], ["updated_at", "2016-03-06 18:51:32.134070"]]
|
209
|
+
[1m[36m (0.4ms)[0m [1mROLLBACK[0m
|
210
|
+
[1m[36m (159.1ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
211
|
+
DECLARE
|
212
|
+
colname text := specialization;
|
213
|
+
colval text := NEW.specialization;
|
214
|
+
tblname text := 'bandits_' || colval;
|
215
|
+
BEGIN
|
216
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
217
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
218
|
+
END IF;
|
219
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
220
|
+
RETURN NULL;
|
221
|
+
END;
|
222
|
+
$$ LANGUAGE plpgsql;[0m
|
223
|
+
[1m[35m (65.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
224
|
+
CREATE TRIGGER insert_bandits_trigger
|
225
|
+
BEFORE INSERT ON bandits
|
226
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
227
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
228
|
+
[1m[35mSQL (5.4ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al"], ["specialization", "killer"], ["created_at", "2016-03-06 18:54:21.292659"], ["updated_at", "2016-03-06 18:54:21.292659"]]
|
229
|
+
[1m[36m (0.2ms)[0m [1mROLLBACK[0m
|
230
|
+
[1m[36m (34.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
231
|
+
DECLARE
|
232
|
+
colname text := specialization;
|
233
|
+
colval text := NEW.specialization;
|
234
|
+
tblname text := 'bandits_' || colval;
|
235
|
+
BEGIN
|
236
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
237
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
238
|
+
END IF;
|
239
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
240
|
+
RETURN NULL;
|
241
|
+
END;
|
242
|
+
$$ LANGUAGE plpgsql;[0m
|
243
|
+
[1m[35m (10.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
244
|
+
CREATE TRIGGER insert_bandits_trigger
|
245
|
+
BEFORE INSERT ON bandits
|
246
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
247
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
248
|
+
[1m[35mSQL (4.4ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al"], ["specialization", "killer"], ["created_at", "2016-03-06 18:56:24.906340"], ["updated_at", "2016-03-06 18:56:24.906340"]]
|
249
|
+
[1m[36m (0.3ms)[0m [1mROLLBACK[0m
|
250
|
+
[1m[36m (26.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
251
|
+
DECLARE
|
252
|
+
colname text := 'specialization';
|
253
|
+
colval text := NEW.specialization;
|
254
|
+
tblname text := 'bandits_' || colval;
|
255
|
+
BEGIN
|
256
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
257
|
+
EXECUTE 'CREATE TABLE ' || tblname || '(check (' || quote_ident(colname) || '=' || quote_literal(colval) || ')) INHERITS (' || TG_RELNAME || ');';
|
258
|
+
END IF;
|
259
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
260
|
+
RETURN NULL;
|
261
|
+
END;
|
262
|
+
$$ LANGUAGE plpgsql;[0m
|
263
|
+
[1m[35m (11.5ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
264
|
+
CREATE TRIGGER insert_bandits_trigger
|
265
|
+
BEFORE INSERT ON bandits
|
266
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
267
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
268
|
+
[1m[35mSQL (417.6ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al"], ["specialization", "killer"], ["created_at", "2016-03-06 18:59:09.972726"], ["updated_at", "2016-03-06 18:59:09.972726"]]
|
269
|
+
[1m[36m (26.5ms)[0m [1mCOMMIT[0m
|
270
|
+
[1m[35mBandit Load (24.4ms)[0m SELECT "bandits".* FROM "bandits"
|
271
|
+
[1m[36m (3.1ms)[0m [1mBEGIN[0m
|
272
|
+
[1m[35mSQL (1.2ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "AlCop"], ["specialization", "killer"], ["created_at", "2016-03-06 18:59:58.928003"], ["updated_at", "2016-03-06 18:59:58.928003"]]
|
273
|
+
[1m[36m (81.1ms)[0m [1mCOMMIT[0m
|
274
|
+
[1m[35mBandit Load (2.3ms)[0m SELECT "bandits".* FROM "bandits"
|
275
|
+
[1m[36m (0.4ms)[0m [1mBEGIN[0m
|
276
|
+
[1m[35mSQL (212.8ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "AlCop"], ["specialization", "killer"], ["created_at", "2016-03-08 09:18:14.136427"], ["updated_at", "2016-03-08 09:18:14.136427"]]
|
277
|
+
[1m[36m (79.1ms)[0m [1mCOMMIT[0m
|
278
|
+
[1m[35m (0.4ms)[0m BEGIN
|
279
|
+
[1m[36mSQL (6.5ms)[0m [1mINSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["name", "AlCop"], ["specialization", "killer"], ["created_at", "2016-03-08 09:19:17.711315"], ["updated_at", "2016-03-08 09:19:17.711315"]]
|
280
|
+
[1m[35m (18.2ms)[0m COMMIT
|
281
|
+
[1m[36mBandit Load (138.1ms)[0m [1mSELECT "bandits".* FROM "bandits"[0m
|
282
|
+
[1m[36m (160.7ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
283
|
+
[1m[35m (150.1ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
284
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.6ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
285
|
+
Migrating to CreateGangs (20160306173540)
|
286
|
+
[1m[35m (0.4ms)[0m BEGIN
|
287
|
+
[1m[36m (187.6ms)[0m [1mCREATE TABLE "gangs" ("id" serial primary key, "title" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
288
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306173540"]]
|
289
|
+
[1m[36m (51.0ms)[0m [1mCOMMIT[0m
|
290
|
+
Migrating to CreateBandits (20160306174017)
|
291
|
+
[1m[35m (0.5ms)[0m BEGIN
|
292
|
+
[1m[36m (128.7ms)[0m [1mCREATE TABLE "bandits" ("id" serial primary key, "name" character varying, "specialization" character varying, "gang_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
293
|
+
[1m[35m (97.4ms)[0m CREATE INDEX "index_bandits_on_gang_id" ON "bandits" ("gang_id")
|
294
|
+
[1m[36m (6.5ms)[0m [1mALTER TABLE "bandits" ADD CONSTRAINT "fk_rails_7411a14fb1"
|
295
|
+
FOREIGN KEY ("gang_id")
|
296
|
+
REFERENCES "gangs" ("id")
|
297
|
+
[0m
|
298
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174017"]]
|
299
|
+
[1m[36m (34.1ms)[0m [1mCOMMIT[0m
|
300
|
+
Migrating to CreateCrimes (20160306174042)
|
301
|
+
[1m[35m (2.1ms)[0m BEGIN
|
302
|
+
[1m[36m (169.2ms)[0m [1mCREATE TABLE "crimes" ("id" serial primary key, "title" character varying, "bandit_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
303
|
+
[1m[35m (79.9ms)[0m CREATE INDEX "index_crimes_on_bandit_id" ON "crimes" ("bandit_id")
|
304
|
+
[1m[36m (13.6ms)[0m [1mALTER TABLE "crimes" ADD CONSTRAINT "fk_rails_ca9866c40c"
|
305
|
+
FOREIGN KEY ("bandit_id")
|
306
|
+
REFERENCES "bandits" ("id")
|
307
|
+
[0m
|
308
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174042"]]
|
309
|
+
[1m[36m (51.6ms)[0m [1mCOMMIT[0m
|
310
|
+
[1m[35mActiveRecord::SchemaMigration Load (1.0ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
311
|
+
[1m[36m (6.5ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
312
|
+
FROM pg_constraint c
|
313
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
314
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
315
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
316
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
317
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
318
|
+
WHERE c.contype = 'f'
|
319
|
+
AND t1.relname = 'bandits'
|
320
|
+
AND t3.nspname = ANY (current_schemas(false))
|
321
|
+
ORDER BY c.conname
|
322
|
+
[0m
|
323
|
+
[1m[35m (7.3ms)[0m SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
324
|
+
FROM pg_constraint c
|
325
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
326
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
327
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
328
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
329
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
330
|
+
WHERE c.contype = 'f'
|
331
|
+
AND t1.relname = 'crimes'
|
332
|
+
AND t3.nspname = ANY (current_schemas(false))
|
333
|
+
ORDER BY c.conname
|
334
|
+
|
335
|
+
[1m[36m (6.1ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
336
|
+
FROM pg_constraint c
|
337
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
338
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
339
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
340
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
341
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
342
|
+
WHERE c.contype = 'f'
|
343
|
+
AND t1.relname = 'gangs'
|
344
|
+
AND t3.nspname = ANY (current_schemas(false))
|
345
|
+
ORDER BY c.conname
|
346
|
+
[0m
|
347
|
+
[1m[36m (87.2ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
348
|
+
DECLARE
|
349
|
+
colname text := 'specialization';
|
350
|
+
colval text := NEW.specialization;
|
351
|
+
tblname text := 'bandits_' || colval;
|
352
|
+
BEGIN
|
353
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
354
|
+
EXECUTE 'CREATE TABLE '
|
355
|
+
|| tblname
|
356
|
+
|| '(check ('
|
357
|
+
|| quote_ident(colname)
|
358
|
+
|| '='
|
359
|
+
|| quote_literal(colval)
|
360
|
+
|| ')) INHERITS ('
|
361
|
+
|| TG_RELNAME
|
362
|
+
|| ');';
|
363
|
+
END IF;
|
364
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
365
|
+
RETURN NULL;
|
366
|
+
END;
|
367
|
+
$$ LANGUAGE plpgsql;[0m
|
368
|
+
[1m[35m (10.9ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
369
|
+
CREATE TRIGGER insert_bandits_trigger
|
370
|
+
BEFORE INSERT ON bandits
|
371
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
372
|
+
[1m[36m (30.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
373
|
+
DECLARE
|
374
|
+
row bandits%rowtype;
|
375
|
+
BEGIN
|
376
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURING * INTO row;
|
377
|
+
RETURN row;
|
378
|
+
END;
|
379
|
+
$$ LANGUAGE plpgsql;[0m
|
380
|
+
[1m[36m (25.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
381
|
+
DECLARE
|
382
|
+
colname text := 'specialization';
|
383
|
+
colval text := NEW.specialization;
|
384
|
+
tblname text := 'bandits_' || colval;
|
385
|
+
BEGIN
|
386
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
387
|
+
EXECUTE 'CREATE TABLE '
|
388
|
+
|| tblname
|
389
|
+
|| '(check ('
|
390
|
+
|| quote_ident(colname)
|
391
|
+
|| '='
|
392
|
+
|| quote_literal(colval)
|
393
|
+
|| ')) INHERITS ('
|
394
|
+
|| TG_RELNAME
|
395
|
+
|| ');';
|
396
|
+
END IF;
|
397
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
398
|
+
RETURN NULL;
|
399
|
+
END;
|
400
|
+
$$ LANGUAGE plpgsql;[0m
|
401
|
+
[1m[35m (10.6ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
402
|
+
CREATE TRIGGER insert_bandits_trigger
|
403
|
+
BEFORE INSERT ON bandits
|
404
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
405
|
+
[1m[36m (11.0ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
406
|
+
DECLARE
|
407
|
+
row bandits%rowtype;
|
408
|
+
BEGIN
|
409
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
410
|
+
RETURN row;
|
411
|
+
END;
|
412
|
+
$$ LANGUAGE plpgsql;[0m
|
413
|
+
[1m[35m (10.7ms)[0m CREATE TRIGGER bandits_after_insert_trigger
|
414
|
+
AFTER INSERT ON bandits
|
415
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
416
|
+
[1m[36m (0.4ms)[0m [1mBEGIN[0m
|
417
|
+
[1m[35mSQL (59.3ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al Cap"], ["specialization", "bootlegger"], ["created_at", "2016-03-08 10:23:46.014823"], ["updated_at", "2016-03-08 10:23:46.014823"]]
|
418
|
+
[1m[36m (16.3ms)[0m [1mCOMMIT[0m
|
419
|
+
[1m[36m (39.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
420
|
+
DECLARE
|
421
|
+
colname text := 'specialization';
|
422
|
+
colval text := NEW.specialization;
|
423
|
+
tblname text := 'bandits_' || colval;
|
424
|
+
BEGIN
|
425
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
426
|
+
EXECUTE 'CREATE TABLE '
|
427
|
+
|| tblname
|
428
|
+
|| '(check ('
|
429
|
+
|| quote_ident(colname)
|
430
|
+
|| '='
|
431
|
+
|| quote_literal(colval)
|
432
|
+
|| ')) INHERITS ('
|
433
|
+
|| TG_RELNAME
|
434
|
+
|| ');';
|
435
|
+
END IF;
|
436
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
437
|
+
RETURN NEW;
|
438
|
+
END;
|
439
|
+
$$ LANGUAGE plpgsql;[0m
|
440
|
+
[1m[35m (10.3ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
441
|
+
CREATE TRIGGER insert_bandits_trigger
|
442
|
+
BEFORE INSERT ON bandits
|
443
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
444
|
+
[1m[36m (10.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
445
|
+
DECLARE
|
446
|
+
row bandits%rowtype;
|
447
|
+
BEGIN
|
448
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
449
|
+
RETURN row;
|
450
|
+
END;
|
451
|
+
$$ LANGUAGE plpgsql;[0m
|
452
|
+
[1m[35m (0.9ms)[0m CREATE TRIGGER bandits_after_insert_trigger
|
453
|
+
AFTER INSERT ON bandits
|
454
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
455
|
+
[1m[36m (33.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
456
|
+
DECLARE
|
457
|
+
colname text := 'specialization';
|
458
|
+
colval text := NEW.specialization;
|
459
|
+
tblname text := 'bandits_' || colval;
|
460
|
+
BEGIN
|
461
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
462
|
+
EXECUTE 'CREATE TABLE '
|
463
|
+
|| tblname
|
464
|
+
|| '(check ('
|
465
|
+
|| quote_ident(colname)
|
466
|
+
|| '='
|
467
|
+
|| quote_literal(colval)
|
468
|
+
|| ')) INHERITS ('
|
469
|
+
|| TG_RELNAME
|
470
|
+
|| ');';
|
471
|
+
END IF;
|
472
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
473
|
+
RETURN NEW;
|
474
|
+
END;
|
475
|
+
$$ LANGUAGE plpgsql;[0m
|
476
|
+
[1m[35m (11.4ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
477
|
+
CREATE TRIGGER insert_bandits_trigger
|
478
|
+
BEFORE INSERT ON bandits
|
479
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
480
|
+
[1m[36m (10.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
481
|
+
DECLARE
|
482
|
+
row bandits%rowtype;
|
483
|
+
BEGIN
|
484
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
485
|
+
RETURN row;
|
486
|
+
END;
|
487
|
+
$$ LANGUAGE plpgsql;[0m
|
488
|
+
[1m[35m (11.4ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
489
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
490
|
+
AFTER INSERT ON bandits
|
491
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
492
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
493
|
+
[1m[35mSQL (102.4ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al Cap"], ["specialization", "bootlegger"], ["created_at", "2016-03-08 10:27:22.638917"], ["updated_at", "2016-03-08 10:27:22.638917"]]
|
494
|
+
[1m[36m (20.7ms)[0m [1mCOMMIT[0m
|
495
|
+
[1m[36mBandit Load (274.3ms)[0m [1mSELECT "bandits".* FROM "bandits"[0m
|
496
|
+
[1m[35mSQL (110.3ms)[0m DELETE FROM "bandits"
|
497
|
+
[1m[36mBandit Load (1.4ms)[0m [1mSELECT "bandits".* FROM "bandits"[0m
|
498
|
+
[1m[35m (0.4ms)[0m BEGIN
|
499
|
+
[1m[36mSQL (208.6ms)[0m [1mINSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["name", "Al Cap"], ["specialization", "bootlegger"], ["created_at", "2016-03-09 17:37:29.355906"], ["updated_at", "2016-03-09 17:37:29.355906"]]
|
500
|
+
[1m[35m (23.9ms)[0m COMMIT
|
501
|
+
[1m[36mBandit Load (1.9ms)[0m [1mSELECT "bandits".* FROM "bandits"[0m
|
502
|
+
[1m[35mSQL (21.0ms)[0m DELETE FROM "bandits"
|
503
|
+
[1m[36m (0.4ms)[0m [1mBEGIN[0m
|
504
|
+
[1m[35mSQL (26.0ms)[0m INSERT INTO "gangs" ("title", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["title", "Mocha"], ["created_at", "2016-03-09 17:38:21.061823"], ["updated_at", "2016-03-09 17:38:21.061823"]]
|
505
|
+
[1m[36m (16.9ms)[0m [1mCOMMIT[0m
|
506
|
+
[1m[35mGang Load (2.4ms)[0m SELECT "gangs".* FROM "gangs" ORDER BY "gangs"."id" ASC LIMIT 1
|
507
|
+
[1m[36mGang Load (1.4ms)[0m [1mSELECT "gangs".* FROM "gangs" ORDER BY "gangs"."id" ASC LIMIT 1[0m
|
508
|
+
[1m[35mGang Load (2.1ms)[0m SELECT "gangs".* FROM "gangs" ORDER BY "gangs"."id" ASC LIMIT 1
|
509
|
+
[1m[36mGang Load (1.3ms)[0m [1mSELECT "gangs".* FROM "gangs" ORDER BY "gangs"."id" ASC LIMIT 1[0m
|
510
|
+
[1m[35m (0.2ms)[0m BEGIN
|
511
|
+
[1m[36mSQL (4.0ms)[0m [1mINSERT INTO "bandits" ("name", "specialization", "gang_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"[0m [["name", "Al Cap"], ["specialization", "bootlegger"], ["gang_id", 1], ["created_at", "2016-03-09 17:43:32.602947"], ["updated_at", "2016-03-09 17:43:32.602947"]]
|
512
|
+
[1m[35m (20.7ms)[0m COMMIT
|
513
|
+
[1m[36mBandit Load (2.0ms)[0m [1mSELECT "bandits".* FROM "bandits"[0m
|
514
|
+
[1m[35mGang Load (2.0ms)[0m SELECT "gangs".* FROM "gangs" ORDER BY "gangs"."id" ASC LIMIT 1
|
515
|
+
[1m[36mBandit Load (1.9ms)[0m [1mSELECT "bandits".* FROM "bandits" WHERE "bandits"."gang_id" = $1[0m [["gang_id", 1]]
|
516
|
+
[1m[35mGang Load (1.4ms)[0m SELECT "gangs".* FROM "gangs" ORDER BY "gangs"."id" ASC LIMIT 1
|
517
|
+
[1m[36mBandit Load (15.5ms)[0m [1mSELECT "bandits".* FROM "bandits" WHERE "bandits"."gang_id" = $1 ORDER BY "bandits"."id" ASC LIMIT 1[0m [["gang_id", 1]]
|
518
|
+
[1m[35m (0.4ms)[0m BEGIN
|
519
|
+
[1m[36mSQL (47.4ms)[0m [1mINSERT INTO "crimes" ("title", "bandit_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["title", "bla"], ["bandit_id", 4], ["created_at", "2016-03-09 17:45:00.577595"], ["updated_at", "2016-03-09 17:45:00.577595"]]
|
520
|
+
[1m[35m (0.3ms)[0m ROLLBACK
|
521
|
+
[1m[36m (0.8ms)[0m [1mSHOW constraint_exclusion;[0m
|
522
|
+
[1m[35m (1.9ms)[0m SHOW constraint_exclusion;
|
523
|
+
[1m[36m (2.3ms)[0m [1mSHOW constraint_exclusion;[0m
|
524
|
+
[1m[35m (1.3ms)[0m SHOW constraint_exclusion;
|
525
|
+
[1m[36m (1.7ms)[0m [1mSHOW constraint_exclusion;[0m
|
526
|
+
[1m[35m (1.1ms)[0m SHOW constraint_exclusion;
|
527
|
+
[1m[36m (2.1ms)[0m [1mSHOW constraint_exclusion;[0m
|
528
|
+
[1m[35m (2.3ms)[0m SHOW constraint_exclusion;
|
529
|
+
[1m[36m (318.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
530
|
+
DECLARE
|
531
|
+
colname text := 'speciafication';
|
532
|
+
colval text := NEW.speciafication;
|
533
|
+
tblname text := 'bandits_' || colval;
|
534
|
+
BEGIN
|
535
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
536
|
+
EXECUTE 'CREATE TABLE '
|
537
|
+
|| tblname
|
538
|
+
|| '(check ('
|
539
|
+
|| quote_ident(colname)
|
540
|
+
|| '='
|
541
|
+
|| quote_literal(colval)
|
542
|
+
|| ')) INHERITS ('
|
543
|
+
|| TG_RELNAME
|
544
|
+
|| ');';
|
545
|
+
END IF;
|
546
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
547
|
+
RETURN NEW;
|
548
|
+
END;
|
549
|
+
$$ LANGUAGE plpgsql;[0m
|
550
|
+
[1m[35m (242.9ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
551
|
+
CREATE TRIGGER insert_bandits_trigger
|
552
|
+
BEFORE INSERT ON bandits
|
553
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
554
|
+
[1m[36m (10.6ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
555
|
+
DECLARE
|
556
|
+
row bandits%rowtype;
|
557
|
+
BEGIN
|
558
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
559
|
+
RETURN row;
|
560
|
+
END;
|
561
|
+
$$ LANGUAGE plpgsql;[0m
|
562
|
+
[1m[35m (9.8ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
563
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
564
|
+
AFTER INSERT ON bandits
|
565
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
566
|
+
[1m[36m (0.5ms)[0m [1mSHOW constraint_exclusion;[0m
|
567
|
+
[1m[36m (47.0ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
568
|
+
DECLARE
|
569
|
+
colname text := 'specialization';
|
570
|
+
colval text := NEW.specialization;
|
571
|
+
tblname text := 'bandits_' || colval;
|
572
|
+
BEGIN
|
573
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
574
|
+
EXECUTE 'CREATE TABLE '
|
575
|
+
|| tblname
|
576
|
+
|| '(check ('
|
577
|
+
|| quote_ident(colname)
|
578
|
+
|| '='
|
579
|
+
|| quote_literal(colval)
|
580
|
+
|| ')) INHERITS ('
|
581
|
+
|| TG_RELNAME
|
582
|
+
|| ');';
|
583
|
+
END IF;
|
584
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
585
|
+
RETURN NEW;
|
586
|
+
END;
|
587
|
+
$$ LANGUAGE plpgsql;[0m
|
588
|
+
[1m[35m (23.0ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
589
|
+
CREATE TRIGGER insert_bandits_trigger
|
590
|
+
BEFORE INSERT ON bandits
|
591
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
592
|
+
[1m[36m (13.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
593
|
+
DECLARE
|
594
|
+
row bandits%rowtype;
|
595
|
+
BEGIN
|
596
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
597
|
+
RETURN row;
|
598
|
+
END;
|
599
|
+
$$ LANGUAGE plpgsql;[0m
|
600
|
+
[1m[35m (12.2ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
601
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
602
|
+
AFTER INSERT ON bandits
|
603
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
604
|
+
[1m[36m (1.2ms)[0m [1mSHOW constraint_exclusion;[0m
|
605
|
+
[1m[36m (21.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
606
|
+
DECLARE
|
607
|
+
colname text := 'specialization';
|
608
|
+
colval text := NEW.specialization;
|
609
|
+
tblname text := 'bandits_' || colval;
|
610
|
+
BEGIN
|
611
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
612
|
+
EXECUTE 'CREATE TABLE '
|
613
|
+
|| tblname
|
614
|
+
|| '(check ('
|
615
|
+
|| quote_ident(colname)
|
616
|
+
|| '='
|
617
|
+
|| quote_literal(colval)
|
618
|
+
|| ')) INHERITS ('
|
619
|
+
|| TG_RELNAME
|
620
|
+
|| ');';
|
621
|
+
END IF;
|
622
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
623
|
+
RETURN NEW;
|
624
|
+
END;
|
625
|
+
$$ LANGUAGE plpgsql;[0m
|
626
|
+
[1m[35m (10.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
627
|
+
CREATE TRIGGER insert_bandits_trigger
|
628
|
+
BEFORE INSERT ON bandits
|
629
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
630
|
+
[1m[36m (10.4ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
631
|
+
DECLARE
|
632
|
+
row bandits%rowtype;
|
633
|
+
BEGIN
|
634
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
635
|
+
RETURN row;
|
636
|
+
END;
|
637
|
+
$$ LANGUAGE plpgsql;[0m
|
638
|
+
[1m[35m (10.7ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
639
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
640
|
+
AFTER INSERT ON bandits
|
641
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
642
|
+
[1m[36m (0.4ms)[0m [1mSHOW constraint_exclusion;[0m
|
643
|
+
[1m[36m (72.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
644
|
+
DECLARE
|
645
|
+
colname text := 'specializtion';
|
646
|
+
colval text := NEW.specializtion;
|
647
|
+
tblname text := 'bandits_' || colval;
|
648
|
+
BEGIN
|
649
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
650
|
+
EXECUTE 'CREATE TABLE '
|
651
|
+
|| tblname
|
652
|
+
|| '(check ('
|
653
|
+
|| quote_ident(colname)
|
654
|
+
|| '='
|
655
|
+
|| quote_literal(colval)
|
656
|
+
|| ')) INHERITS ('
|
657
|
+
|| TG_RELNAME
|
658
|
+
|| ');';
|
659
|
+
END IF;
|
660
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
661
|
+
RETURN NEW;
|
662
|
+
END;
|
663
|
+
$$ LANGUAGE plpgsql;[0m
|
664
|
+
[1m[35m (11.0ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
665
|
+
CREATE TRIGGER insert_bandits_trigger
|
666
|
+
BEFORE INSERT ON bandits
|
667
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
668
|
+
[1m[36m (11.2ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
669
|
+
DECLARE
|
670
|
+
row bandits%rowtype;
|
671
|
+
BEGIN
|
672
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
673
|
+
RETURN row;
|
674
|
+
END;
|
675
|
+
$$ LANGUAGE plpgsql;[0m
|
676
|
+
[1m[35m (10.6ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
677
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
678
|
+
AFTER INSERT ON bandits
|
679
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
680
|
+
[1m[36m (1.9ms)[0m [1mSHOW constraint_exclusion;[0m
|
681
|
+
[1m[36m (106.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandit_insert_master() RETURNS TRIGGER AS $$
|
682
|
+
DECLARE
|
683
|
+
colname text := 'specialization';
|
684
|
+
colval text := NEW.specialization;
|
685
|
+
tblname text := 'bandit_' || colval;
|
686
|
+
BEGIN
|
687
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
688
|
+
EXECUTE 'CREATE TABLE '
|
689
|
+
|| tblname
|
690
|
+
|| '(check ('
|
691
|
+
|| quote_ident(colname)
|
692
|
+
|| '='
|
693
|
+
|| quote_literal(colval)
|
694
|
+
|| ')) INHERITS ('
|
695
|
+
|| TG_RELNAME
|
696
|
+
|| ');';
|
697
|
+
END IF;
|
698
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
699
|
+
RETURN NEW;
|
700
|
+
END;
|
701
|
+
$$ LANGUAGE plpgsql;[0m
|
702
|
+
[1m[35m (29.9ms)[0m DROP TRIGGER IF EXISTS insert_bandit_trigger ON bandit;
|
703
|
+
CREATE TRIGGER insert_bandit_trigger
|
704
|
+
BEFORE INSERT ON bandit
|
705
|
+
FOR EACH ROW EXECUTE PROCEDURE bandit_insert_master();
|
706
|
+
[1m[36m (15.1ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
707
|
+
DECLARE
|
708
|
+
colname text := 'specialization';
|
709
|
+
colval text := NEW.specialization;
|
710
|
+
tblname text := 'bandits_' || colval;
|
711
|
+
BEGIN
|
712
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
713
|
+
EXECUTE 'CREATE TABLE '
|
714
|
+
|| tblname
|
715
|
+
|| '(check ('
|
716
|
+
|| quote_ident(colname)
|
717
|
+
|| '='
|
718
|
+
|| quote_literal(colval)
|
719
|
+
|| ')) INHERITS ('
|
720
|
+
|| TG_RELNAME
|
721
|
+
|| ');';
|
722
|
+
END IF;
|
723
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
724
|
+
RETURN NEW;
|
725
|
+
END;
|
726
|
+
$$ LANGUAGE plpgsql;[0m
|
727
|
+
[1m[35m (10.9ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
728
|
+
CREATE TRIGGER insert_bandits_trigger
|
729
|
+
BEFORE INSERT ON bandits
|
730
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
731
|
+
[1m[36m (10.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
732
|
+
DECLARE
|
733
|
+
row bandits%rowtype;
|
734
|
+
BEGIN
|
735
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
736
|
+
RETURN row;
|
737
|
+
END;
|
738
|
+
$$ LANGUAGE plpgsql;[0m
|
739
|
+
[1m[35m (10.4ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
740
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
741
|
+
AFTER INSERT ON bandits
|
742
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
743
|
+
[1m[36m (0.3ms)[0m [1mSHOW constraint_exclusion;[0m
|
744
|
+
[1m[36m (73.1ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
745
|
+
DECLARE
|
746
|
+
colname text := 'specialization';
|
747
|
+
colval text := NEW.specialization;
|
748
|
+
tblname text := 'bandits_' || colval;
|
749
|
+
BEGIN
|
750
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
751
|
+
EXECUTE 'CREATE TABLE '
|
752
|
+
|| tblname
|
753
|
+
|| '(check ('
|
754
|
+
|| quote_ident(colname)
|
755
|
+
|| '='
|
756
|
+
|| quote_literal(colval)
|
757
|
+
|| ')) INHERITS ('
|
758
|
+
|| TG_RELNAME
|
759
|
+
|| ');';
|
760
|
+
END IF;
|
761
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
762
|
+
RETURN NEW;
|
763
|
+
END;
|
764
|
+
$$ LANGUAGE plpgsql;[0m
|
765
|
+
[1m[35m (10.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
766
|
+
CREATE TRIGGER insert_bandits_trigger
|
767
|
+
BEFORE INSERT ON bandits
|
768
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
769
|
+
[1m[36m (10.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
770
|
+
DECLARE
|
771
|
+
row bandits%rowtype;
|
772
|
+
BEGIN
|
773
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
774
|
+
RETURN row;
|
775
|
+
END;
|
776
|
+
$$ LANGUAGE plpgsql;[0m
|
777
|
+
[1m[35m (11.0ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
778
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
779
|
+
AFTER INSERT ON bandits
|
780
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
781
|
+
[1m[36m (0.3ms)[0m [1mSHOW constraint_exclusion;[0m
|
782
|
+
[1m[36m (33.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
783
|
+
DECLARE
|
784
|
+
colname text := 'specialization';
|
785
|
+
colval text := NEW.specialization;
|
786
|
+
tblname text := 'bandits_' || colval;
|
787
|
+
BEGIN
|
788
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
789
|
+
EXECUTE 'CREATE TABLE '
|
790
|
+
|| tblname
|
791
|
+
|| '(check ('
|
792
|
+
|| quote_ident(colname)
|
793
|
+
|| '='
|
794
|
+
|| quote_literal(colval)
|
795
|
+
|| ')) INHERITS ('
|
796
|
+
|| TG_RELNAME
|
797
|
+
|| ');';
|
798
|
+
END IF;
|
799
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
800
|
+
RETURN NEW;
|
801
|
+
END;
|
802
|
+
$$ LANGUAGE plpgsql;[0m
|
803
|
+
[1m[35m (10.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
804
|
+
CREATE TRIGGER insert_bandits_trigger
|
805
|
+
BEFORE INSERT ON bandits
|
806
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
807
|
+
[1m[36m (10.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
808
|
+
DECLARE
|
809
|
+
row bandits%rowtype;
|
810
|
+
BEGIN
|
811
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
812
|
+
RETURN row;
|
813
|
+
END;
|
814
|
+
$$ LANGUAGE plpgsql;[0m
|
815
|
+
[1m[35m (10.8ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
816
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
817
|
+
AFTER INSERT ON bandits
|
818
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
819
|
+
[1m[36m (0.2ms)[0m [1mSHOW constraint_exclusion;[0m
|
820
|
+
[1m[36m (31.0ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
821
|
+
DECLARE
|
822
|
+
colname text := 'specialization';
|
823
|
+
colval text := NEW.specialization;
|
824
|
+
tblname text := 'bandits_' || colval;
|
825
|
+
BEGIN
|
826
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
827
|
+
EXECUTE 'CREATE TABLE '
|
828
|
+
|| tblname
|
829
|
+
|| '(check ('
|
830
|
+
|| quote_ident(colname)
|
831
|
+
|| '='
|
832
|
+
|| quote_literal(colval)
|
833
|
+
|| ')) INHERITS ('
|
834
|
+
|| TG_RELNAME
|
835
|
+
|| ');';
|
836
|
+
END IF;
|
837
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
838
|
+
RETURN NEW;
|
839
|
+
END;
|
840
|
+
$$ LANGUAGE plpgsql;[0m
|
841
|
+
[1m[35m (11.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
842
|
+
CREATE TRIGGER insert_bandits_trigger
|
843
|
+
BEFORE INSERT ON bandits
|
844
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
845
|
+
[1m[36m (11.0ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
846
|
+
DECLARE
|
847
|
+
row bandits%rowtype;
|
848
|
+
BEGIN
|
849
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
850
|
+
RETURN row;
|
851
|
+
END;
|
852
|
+
$$ LANGUAGE plpgsql;[0m
|
853
|
+
[1m[35m (10.8ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
854
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
855
|
+
AFTER INSERT ON bandits
|
856
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
857
|
+
[1m[36m (0.2ms)[0m [1mSHOW constraint_exclusion;[0m
|
858
|
+
[1m[36m (13.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
859
|
+
DECLARE
|
860
|
+
colname text := 'specialization';
|
861
|
+
colval text := NEW.specialization;
|
862
|
+
tblname text := 'bandits_' || colval;
|
863
|
+
BEGIN
|
864
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
865
|
+
EXECUTE 'CREATE TABLE '
|
866
|
+
|| tblname
|
867
|
+
|| '(check ('
|
868
|
+
|| quote_ident(colname)
|
869
|
+
|| '='
|
870
|
+
|| quote_literal(colval)
|
871
|
+
|| ')) INHERITS ('
|
872
|
+
|| TG_RELNAME
|
873
|
+
|| ');';
|
874
|
+
END IF;
|
875
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
876
|
+
RETURN NEW;
|
877
|
+
END;
|
878
|
+
$$ LANGUAGE plpgsql;[0m
|
879
|
+
[1m[35m (10.9ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
880
|
+
CREATE TRIGGER insert_bandits_trigger
|
881
|
+
BEFORE INSERT ON bandits
|
882
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
883
|
+
[1m[36m (10.5ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
884
|
+
DECLARE
|
885
|
+
row bandits%rowtype;
|
886
|
+
BEGIN
|
887
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
888
|
+
RETURN row;
|
889
|
+
END;
|
890
|
+
$$ LANGUAGE plpgsql;[0m
|
891
|
+
[1m[35m (11.2ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
892
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
893
|
+
AFTER INSERT ON bandits
|
894
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
895
|
+
[1m[36m (1.4ms)[0m [1mSHOW constraint_exclusion;[0m
|
896
|
+
[1m[36m (31.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
897
|
+
DECLARE
|
898
|
+
colname text := 'specialization';
|
899
|
+
colval text := NEW.specialization;
|
900
|
+
tblname text := 'bandits_' || colval;
|
901
|
+
BEGIN
|
902
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
903
|
+
EXECUTE 'CREATE TABLE '
|
904
|
+
|| tblname
|
905
|
+
|| '(check ('
|
906
|
+
|| quote_ident(colname)
|
907
|
+
|| '='
|
908
|
+
|| quote_literal(colval)
|
909
|
+
|| ')) INHERITS ('
|
910
|
+
|| TG_RELNAME
|
911
|
+
|| ');';
|
912
|
+
END IF;
|
913
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
914
|
+
RETURN NEW;
|
915
|
+
END;
|
916
|
+
$$ LANGUAGE plpgsql;[0m
|
917
|
+
[1m[35m (15.4ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
918
|
+
CREATE TRIGGER insert_bandits_trigger
|
919
|
+
BEFORE INSERT ON bandits
|
920
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
921
|
+
[1m[36m (5.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
922
|
+
DECLARE
|
923
|
+
row bandits%rowtype;
|
924
|
+
BEGIN
|
925
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
926
|
+
RETURN row;
|
927
|
+
END;
|
928
|
+
$$ LANGUAGE plpgsql;[0m
|
929
|
+
[1m[35m (11.2ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
930
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
931
|
+
AFTER INSERT ON bandits
|
932
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
933
|
+
[1m[36m (0.3ms)[0m [1mSHOW constraint_exclusion;[0m
|
934
|
+
[1m[36m (41.1ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
935
|
+
DECLARE
|
936
|
+
colname text := 'specialization';
|
937
|
+
colval text := NEW.specialization;
|
938
|
+
tblname text := 'bandits_' || colval;
|
939
|
+
BEGIN
|
940
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
941
|
+
EXECUTE 'CREATE TABLE '
|
942
|
+
|| tblname
|
943
|
+
|| '(check ('
|
944
|
+
|| quote_ident(colname)
|
945
|
+
|| '='
|
946
|
+
|| quote_literal(colval)
|
947
|
+
|| ')) INHERITS ('
|
948
|
+
|| TG_RELNAME
|
949
|
+
|| ');';
|
950
|
+
END IF;
|
951
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
952
|
+
RETURN NEW;
|
953
|
+
END;
|
954
|
+
$$ LANGUAGE plpgsql;[0m
|
955
|
+
[1m[35m (10.1ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
956
|
+
CREATE TRIGGER insert_bandits_trigger
|
957
|
+
BEFORE INSERT ON bandits
|
958
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
959
|
+
[1m[36m (10.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
960
|
+
DECLARE
|
961
|
+
row bandits%rowtype;
|
962
|
+
BEGIN
|
963
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
964
|
+
RETURN row;
|
965
|
+
END;
|
966
|
+
$$ LANGUAGE plpgsql;[0m
|
967
|
+
[1m[35m (11.0ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
968
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
969
|
+
AFTER INSERT ON bandits
|
970
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
971
|
+
[1m[36m (0.3ms)[0m [1mSHOW constraint_exclusion;[0m
|
972
|
+
[1m[36m (59.4ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
973
|
+
DECLARE
|
974
|
+
colname text := 'spec';
|
975
|
+
colval text := NEW.spec;
|
976
|
+
tblname text := 'bandits_' || colval;
|
977
|
+
BEGIN
|
978
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
979
|
+
EXECUTE 'CREATE TABLE '
|
980
|
+
|| tblname
|
981
|
+
|| '(check ('
|
982
|
+
|| quote_ident(colname)
|
983
|
+
|| '='
|
984
|
+
|| quote_literal(colval)
|
985
|
+
|| ')) INHERITS ('
|
986
|
+
|| TG_RELNAME
|
987
|
+
|| ');';
|
988
|
+
END IF;
|
989
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
990
|
+
RETURN NEW;
|
991
|
+
END;
|
992
|
+
$$ LANGUAGE plpgsql;[0m
|
993
|
+
[1m[35m (14.9ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
994
|
+
CREATE TRIGGER insert_bandits_trigger
|
995
|
+
BEFORE INSERT ON bandits
|
996
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
997
|
+
[1m[36m (7.6ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
998
|
+
DECLARE
|
999
|
+
row bandits%rowtype;
|
1000
|
+
BEGIN
|
1001
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1002
|
+
RETURN row;
|
1003
|
+
END;
|
1004
|
+
$$ LANGUAGE plpgsql;[0m
|
1005
|
+
[1m[35m (9.2ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1006
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1007
|
+
AFTER INSERT ON bandits
|
1008
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1009
|
+
[1m[36m (0.5ms)[0m [1mSHOW constraint_exclusion;[0m
|
1010
|
+
[1m[36m (37.1ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1011
|
+
DECLARE
|
1012
|
+
colname text := 'spec';
|
1013
|
+
colval text := NEW.spec;
|
1014
|
+
tblname text := 'bandits_' || colval;
|
1015
|
+
BEGIN
|
1016
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1017
|
+
EXECUTE 'CREATE TABLE '
|
1018
|
+
|| tblname
|
1019
|
+
|| '(check ('
|
1020
|
+
|| quote_ident(colname)
|
1021
|
+
|| '='
|
1022
|
+
|| quote_literal(colval)
|
1023
|
+
|| ')) INHERITS ('
|
1024
|
+
|| TG_RELNAME
|
1025
|
+
|| ');';
|
1026
|
+
END IF;
|
1027
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1028
|
+
RETURN NEW;
|
1029
|
+
END;
|
1030
|
+
$$ LANGUAGE plpgsql;[0m
|
1031
|
+
[1m[35m (14.2ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1032
|
+
CREATE TRIGGER insert_bandits_trigger
|
1033
|
+
BEFORE INSERT ON bandits
|
1034
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1035
|
+
[1m[36m (8.4ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1036
|
+
DECLARE
|
1037
|
+
row bandits%rowtype;
|
1038
|
+
BEGIN
|
1039
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1040
|
+
RETURN row;
|
1041
|
+
END;
|
1042
|
+
$$ LANGUAGE plpgsql;[0m
|
1043
|
+
[1m[35m (10.8ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1044
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1045
|
+
AFTER INSERT ON bandits
|
1046
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1047
|
+
[1m[36m (0.3ms)[0m [1mSHOW constraint_exclusion;[0m
|
1048
|
+
[1m[36m (20.4ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1049
|
+
DECLARE
|
1050
|
+
colname text := 'spec';
|
1051
|
+
colval text := NEW.spec;
|
1052
|
+
tblname text := 'bandits_' || colval;
|
1053
|
+
BEGIN
|
1054
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1055
|
+
EXECUTE 'CREATE TABLE '
|
1056
|
+
|| tblname
|
1057
|
+
|| '(check ('
|
1058
|
+
|| quote_ident(colname)
|
1059
|
+
|| '='
|
1060
|
+
|| quote_literal(colval)
|
1061
|
+
|| ')) INHERITS ('
|
1062
|
+
|| TG_RELNAME
|
1063
|
+
|| ');';
|
1064
|
+
END IF;
|
1065
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1066
|
+
RETURN NEW;
|
1067
|
+
END;
|
1068
|
+
$$ LANGUAGE plpgsql;[0m
|
1069
|
+
[1m[35m (10.6ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1070
|
+
CREATE TRIGGER insert_bandits_trigger
|
1071
|
+
BEFORE INSERT ON bandits
|
1072
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1073
|
+
[1m[36m (10.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1074
|
+
DECLARE
|
1075
|
+
row bandits%rowtype;
|
1076
|
+
BEGIN
|
1077
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1078
|
+
RETURN row;
|
1079
|
+
END;
|
1080
|
+
$$ LANGUAGE plpgsql;[0m
|
1081
|
+
[1m[35m (10.7ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1082
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1083
|
+
AFTER INSERT ON bandits
|
1084
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1085
|
+
[1m[36m (0.3ms)[0m [1mSHOW constraint_exclusion;[0m
|
1086
|
+
[1m[36m (57.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1087
|
+
DECLARE
|
1088
|
+
colname text := 'spec';
|
1089
|
+
colval text := NEW.spec;
|
1090
|
+
tblname text := 'bandits_' || colval;
|
1091
|
+
BEGIN
|
1092
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1093
|
+
EXECUTE 'CREATE TABLE '
|
1094
|
+
|| tblname
|
1095
|
+
|| '(check ('
|
1096
|
+
|| quote_ident(colname)
|
1097
|
+
|| '='
|
1098
|
+
|| quote_literal(colval)
|
1099
|
+
|| ')) INHERITS ('
|
1100
|
+
|| TG_RELNAME
|
1101
|
+
|| ');';
|
1102
|
+
END IF;
|
1103
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1104
|
+
RETURN NEW;
|
1105
|
+
END;
|
1106
|
+
$$ LANGUAGE plpgsql;[0m
|
1107
|
+
[1m[35m (14.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1108
|
+
CREATE TRIGGER insert_bandits_trigger
|
1109
|
+
BEFORE INSERT ON bandits
|
1110
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1111
|
+
[1m[36m (7.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1112
|
+
DECLARE
|
1113
|
+
row bandits%rowtype;
|
1114
|
+
BEGIN
|
1115
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1116
|
+
RETURN row;
|
1117
|
+
END;
|
1118
|
+
$$ LANGUAGE plpgsql;[0m
|
1119
|
+
[1m[35m (11.6ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1120
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1121
|
+
AFTER INSERT ON bandits
|
1122
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1123
|
+
[1m[36m (0.3ms)[0m [1mSHOW constraint_exclusion;[0m
|
1124
|
+
[1m[36m (342.6ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1125
|
+
DECLARE
|
1126
|
+
colname text := 'specification';
|
1127
|
+
colval text := NEW.specification;
|
1128
|
+
tblname text := 'bandits_' || colval;
|
1129
|
+
BEGIN
|
1130
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1131
|
+
EXECUTE 'CREATE TABLE '
|
1132
|
+
|| tblname
|
1133
|
+
|| '(check ('
|
1134
|
+
|| quote_ident(colname)
|
1135
|
+
|| '='
|
1136
|
+
|| quote_literal(colval)
|
1137
|
+
|| ')) INHERITS ('
|
1138
|
+
|| TG_RELNAME
|
1139
|
+
|| ');';
|
1140
|
+
END IF;
|
1141
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1142
|
+
RETURN NEW;
|
1143
|
+
END;
|
1144
|
+
$$ LANGUAGE plpgsql;[0m
|
1145
|
+
[1m[35m (366.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1146
|
+
CREATE TRIGGER insert_bandits_trigger
|
1147
|
+
BEFORE INSERT ON bandits
|
1148
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1149
|
+
[1m[36m (32.6ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1150
|
+
DECLARE
|
1151
|
+
row bandits%rowtype;
|
1152
|
+
BEGIN
|
1153
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1154
|
+
RETURN row;
|
1155
|
+
END;
|
1156
|
+
$$ LANGUAGE plpgsql;[0m
|
1157
|
+
[1m[35m (10.6ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1158
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1159
|
+
AFTER INSERT ON bandits
|
1160
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1161
|
+
[1m[36m (22.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1162
|
+
DECLARE
|
1163
|
+
colname text := 'specifications';
|
1164
|
+
colval text := NEW.specifications;
|
1165
|
+
tblname text := 'bandits_' || colval;
|
1166
|
+
BEGIN
|
1167
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1168
|
+
EXECUTE 'CREATE TABLE '
|
1169
|
+
|| tblname
|
1170
|
+
|| '(check ('
|
1171
|
+
|| quote_ident(colname)
|
1172
|
+
|| '='
|
1173
|
+
|| quote_literal(colval)
|
1174
|
+
|| ')) INHERITS ('
|
1175
|
+
|| TG_RELNAME
|
1176
|
+
|| ');';
|
1177
|
+
END IF;
|
1178
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1179
|
+
RETURN NEW;
|
1180
|
+
END;
|
1181
|
+
$$ LANGUAGE plpgsql;[0m
|
1182
|
+
[1m[35m (65.9ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1183
|
+
CREATE TRIGGER insert_bandits_trigger
|
1184
|
+
BEFORE INSERT ON bandits
|
1185
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1186
|
+
[1m[36m (14.6ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1187
|
+
DECLARE
|
1188
|
+
row bandits%rowtype;
|
1189
|
+
BEGIN
|
1190
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1191
|
+
RETURN row;
|
1192
|
+
END;
|
1193
|
+
$$ LANGUAGE plpgsql;[0m
|
1194
|
+
[1m[35m (7.0ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1195
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1196
|
+
AFTER INSERT ON bandits
|
1197
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1198
|
+
[1m[36m (419.6ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1199
|
+
ccu.table_name AS foreign_table_name,
|
1200
|
+
ccu.column_name AS foreign_column_name
|
1201
|
+
FROM information_schema.table_constraints AS tc
|
1202
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1203
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1204
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1205
|
+
[1m[35m (0.8ms)[0m SHOW constraint_exclusion;
|
1206
|
+
[1m[36m (35.6ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1207
|
+
DECLARE
|
1208
|
+
colname text := 'specifications';
|
1209
|
+
colval text := NEW.specifications;
|
1210
|
+
tblname text := 'bandits_' || colval;
|
1211
|
+
BEGIN
|
1212
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1213
|
+
EXECUTE 'CREATE TABLE '
|
1214
|
+
|| tblname
|
1215
|
+
|| '(check ('
|
1216
|
+
|| quote_ident(colname)
|
1217
|
+
|| '='
|
1218
|
+
|| quote_literal(colval)
|
1219
|
+
|| ')) INHERITS ('
|
1220
|
+
|| TG_RELNAME
|
1221
|
+
|| ');';
|
1222
|
+
END IF;
|
1223
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1224
|
+
RETURN NEW;
|
1225
|
+
END;
|
1226
|
+
$$ LANGUAGE plpgsql;[0m
|
1227
|
+
[1m[35m (13.4ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1228
|
+
CREATE TRIGGER insert_bandits_trigger
|
1229
|
+
BEFORE INSERT ON bandits
|
1230
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1231
|
+
[1m[36m (7.7ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1232
|
+
DECLARE
|
1233
|
+
row bandits%rowtype;
|
1234
|
+
BEGIN
|
1235
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1236
|
+
RETURN row;
|
1237
|
+
END;
|
1238
|
+
$$ LANGUAGE plpgsql;[0m
|
1239
|
+
[1m[35m (14.9ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1240
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1241
|
+
AFTER INSERT ON bandits
|
1242
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1243
|
+
[1m[36m (24.2ms)[0m [1mS[0m
|
1244
|
+
[1m[36m (19.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1245
|
+
DECLARE
|
1246
|
+
colname text := 'specifications';
|
1247
|
+
colval text := NEW.specifications;
|
1248
|
+
tblname text := 'bandits_' || colval;
|
1249
|
+
BEGIN
|
1250
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1251
|
+
EXECUTE 'CREATE TABLE '
|
1252
|
+
|| tblname
|
1253
|
+
|| '(check ('
|
1254
|
+
|| quote_ident(colname)
|
1255
|
+
|| '='
|
1256
|
+
|| quote_literal(colval)
|
1257
|
+
|| ')) INHERITS ('
|
1258
|
+
|| TG_RELNAME
|
1259
|
+
|| ');';
|
1260
|
+
END IF;
|
1261
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1262
|
+
RETURN NEW;
|
1263
|
+
END;
|
1264
|
+
$$ LANGUAGE plpgsql;[0m
|
1265
|
+
[1m[35m (13.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1266
|
+
CREATE TRIGGER insert_bandits_trigger
|
1267
|
+
BEFORE INSERT ON bandits
|
1268
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1269
|
+
[1m[36m (7.7ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1270
|
+
DECLARE
|
1271
|
+
row bandits%rowtype;
|
1272
|
+
BEGIN
|
1273
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1274
|
+
RETURN row;
|
1275
|
+
END;
|
1276
|
+
$$ LANGUAGE plpgsql;[0m
|
1277
|
+
[1m[35m (13.1ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1278
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1279
|
+
AFTER INSERT ON bandits
|
1280
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1281
|
+
[1m[36m (37.6ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1282
|
+
ccu.table_name AS foreign_table_name,
|
1283
|
+
ccu.column_name AS foreign_column_name
|
1284
|
+
FROM information_schema.table_constraints AS tc
|
1285
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1286
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1287
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1288
|
+
[1m[35m (0.5ms)[0m SHOW constraint_exclusion;
|
1289
|
+
[1m[36m (80.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1290
|
+
DECLARE
|
1291
|
+
colname text := 'specifications';
|
1292
|
+
colval text := NEW.specifications;
|
1293
|
+
tblname text := 'bandits_' || colval;
|
1294
|
+
BEGIN
|
1295
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1296
|
+
EXECUTE 'CREATE TABLE '
|
1297
|
+
|| tblname
|
1298
|
+
|| '(check ('
|
1299
|
+
|| quote_ident(colname)
|
1300
|
+
|| '='
|
1301
|
+
|| quote_literal(colval)
|
1302
|
+
|| ')) INHERITS ('
|
1303
|
+
|| TG_RELNAME
|
1304
|
+
|| ');';
|
1305
|
+
END IF;
|
1306
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1307
|
+
RETURN NEW;
|
1308
|
+
END;
|
1309
|
+
$$ LANGUAGE plpgsql;[0m
|
1310
|
+
[1m[35m (14.3ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1311
|
+
CREATE TRIGGER insert_bandits_trigger
|
1312
|
+
BEFORE INSERT ON bandits
|
1313
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1314
|
+
[1m[36m (20.2ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1315
|
+
DECLARE
|
1316
|
+
row bandits%rowtype;
|
1317
|
+
BEGIN
|
1318
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1319
|
+
RETURN row;
|
1320
|
+
END;
|
1321
|
+
$$ LANGUAGE plpgsql;[0m
|
1322
|
+
[1m[35m (9.8ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1323
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1324
|
+
AFTER INSERT ON bandits
|
1325
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1326
|
+
[1m[36m (71.2ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1327
|
+
ccu.table_name AS foreign_table_name,
|
1328
|
+
ccu.column_name AS foreign_column_name
|
1329
|
+
FROM information_schema.table_constraints AS tc
|
1330
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1331
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1332
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1333
|
+
[1m[35m (114.9ms)[0m ALTER TABLE crimes DROP CONSTRAINT fk_rails_ca9866c40c;
|
1334
|
+
[1m[36m (0.4ms)[0m [1mSHOW constraint_exclusion;[0m
|
1335
|
+
[1m[36m (38.1ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1336
|
+
DECLARE
|
1337
|
+
colname text := 'specifications';
|
1338
|
+
colval text := NEW.specifications;
|
1339
|
+
tblname text := 'bandits_' || colval;
|
1340
|
+
BEGIN
|
1341
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1342
|
+
EXECUTE 'CREATE TABLE '
|
1343
|
+
|| tblname
|
1344
|
+
|| '(check ('
|
1345
|
+
|| quote_ident(colname)
|
1346
|
+
|| '='
|
1347
|
+
|| quote_literal(colval)
|
1348
|
+
|| ')) INHERITS ('
|
1349
|
+
|| TG_RELNAME
|
1350
|
+
|| ');';
|
1351
|
+
END IF;
|
1352
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1353
|
+
RETURN NEW;
|
1354
|
+
END;
|
1355
|
+
$$ LANGUAGE plpgsql;[0m
|
1356
|
+
[1m[35m (14.2ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1357
|
+
CREATE TRIGGER insert_bandits_trigger
|
1358
|
+
BEFORE INSERT ON bandits
|
1359
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1360
|
+
[1m[36m (6.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1361
|
+
DECLARE
|
1362
|
+
row bandits%rowtype;
|
1363
|
+
BEGIN
|
1364
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1365
|
+
RETURN row;
|
1366
|
+
END;
|
1367
|
+
$$ LANGUAGE plpgsql;[0m
|
1368
|
+
[1m[35m (10.8ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1369
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1370
|
+
AFTER INSERT ON bandits
|
1371
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1372
|
+
[1m[36m (37.0ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1373
|
+
ccu.table_name AS foreign_table_name,
|
1374
|
+
ccu.column_name AS foreign_column_name
|
1375
|
+
FROM information_schema.table_constraints AS tc
|
1376
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1377
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1378
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1379
|
+
[1m[35m (0.5ms)[0m SHOW constraint_exclusion;
|
1380
|
+
[1m[36m (218.8ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
1381
|
+
[1m[35m (76.6ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
1382
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.6ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
1383
|
+
Migrating to CreateGangs (20160306173540)
|
1384
|
+
[1m[35m (0.4ms)[0m BEGIN
|
1385
|
+
[1m[36m (157.8ms)[0m [1mCREATE TABLE "gangs" ("id" serial primary key, "title" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
1386
|
+
[1m[35mSQL (59.8ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306173540"]]
|
1387
|
+
[1m[36m (122.5ms)[0m [1mCOMMIT[0m
|
1388
|
+
Migrating to CreateBandits (20160306174017)
|
1389
|
+
[1m[35m (0.5ms)[0m BEGIN
|
1390
|
+
[1m[36m (109.1ms)[0m [1mCREATE TABLE "bandits" ("id" serial primary key, "name" character varying, "specialization" character varying, "gang_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
1391
|
+
[1m[35m (55.7ms)[0m CREATE INDEX "index_bandits_on_gang_id" ON "bandits" ("gang_id")
|
1392
|
+
[1m[36m (5.8ms)[0m [1mALTER TABLE "bandits" ADD CONSTRAINT "fk_rails_7411a14fb1"
|
1393
|
+
FOREIGN KEY ("gang_id")
|
1394
|
+
REFERENCES "gangs" ("id")
|
1395
|
+
[0m
|
1396
|
+
[1m[35mSQL (26.9ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174017"]]
|
1397
|
+
[1m[36m (22.0ms)[0m [1mCOMMIT[0m
|
1398
|
+
Migrating to CreateCrimes (20160306174042)
|
1399
|
+
[1m[35m (0.8ms)[0m BEGIN
|
1400
|
+
[1m[36m (94.3ms)[0m [1mCREATE TABLE "crimes" ("id" serial primary key, "title" character varying, "bandit_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
1401
|
+
[1m[35m (51.5ms)[0m CREATE INDEX "index_crimes_on_bandit_id" ON "crimes" ("bandit_id")
|
1402
|
+
[1m[36m (4.7ms)[0m [1mALTER TABLE "crimes" ADD CONSTRAINT "fk_rails_ca9866c40c"
|
1403
|
+
FOREIGN KEY ("bandit_id")
|
1404
|
+
REFERENCES "bandits" ("id")
|
1405
|
+
[0m
|
1406
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174042"]]
|
1407
|
+
[1m[36m (20.9ms)[0m [1mCOMMIT[0m
|
1408
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.9ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
1409
|
+
[1m[36m (12.4ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
1410
|
+
FROM pg_constraint c
|
1411
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
1412
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
1413
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
1414
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
1415
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
1416
|
+
WHERE c.contype = 'f'
|
1417
|
+
AND t1.relname = 'bandits'
|
1418
|
+
AND t3.nspname = ANY (current_schemas(false))
|
1419
|
+
ORDER BY c.conname
|
1420
|
+
[0m
|
1421
|
+
[1m[35m (13.2ms)[0m SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
1422
|
+
FROM pg_constraint c
|
1423
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
1424
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
1425
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
1426
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
1427
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
1428
|
+
WHERE c.contype = 'f'
|
1429
|
+
AND t1.relname = 'crimes'
|
1430
|
+
AND t3.nspname = ANY (current_schemas(false))
|
1431
|
+
ORDER BY c.conname
|
1432
|
+
|
1433
|
+
[1m[36m (13.8ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
1434
|
+
FROM pg_constraint c
|
1435
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
1436
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
1437
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
1438
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
1439
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
1440
|
+
WHERE c.contype = 'f'
|
1441
|
+
AND t1.relname = 'gangs'
|
1442
|
+
AND t3.nspname = ANY (current_schemas(false))
|
1443
|
+
ORDER BY c.conname
|
1444
|
+
[0m
|
1445
|
+
[1m[36m (57.7ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1446
|
+
DECLARE
|
1447
|
+
colname text := 'specifications';
|
1448
|
+
colval text := NEW.specifications;
|
1449
|
+
tblname text := 'bandits_' || colval;
|
1450
|
+
BEGIN
|
1451
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1452
|
+
EXECUTE 'CREATE TABLE '
|
1453
|
+
|| tblname
|
1454
|
+
|| '(check ('
|
1455
|
+
|| quote_ident(colname)
|
1456
|
+
|| '='
|
1457
|
+
|| quote_literal(colval)
|
1458
|
+
|| ')) INHERITS ('
|
1459
|
+
|| TG_RELNAME
|
1460
|
+
|| ');';
|
1461
|
+
END IF;
|
1462
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1463
|
+
RETURN NEW;
|
1464
|
+
END;
|
1465
|
+
$$ LANGUAGE plpgsql;[0m
|
1466
|
+
[1m[35m (15.1ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1467
|
+
CREATE TRIGGER insert_bandits_trigger
|
1468
|
+
BEFORE INSERT ON bandits
|
1469
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1470
|
+
[1m[36m (6.4ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1471
|
+
DECLARE
|
1472
|
+
row bandits%rowtype;
|
1473
|
+
BEGIN
|
1474
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1475
|
+
RETURN row;
|
1476
|
+
END;
|
1477
|
+
$$ LANGUAGE plpgsql;[0m
|
1478
|
+
[1m[35m (10.7ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1479
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1480
|
+
AFTER INSERT ON bandits
|
1481
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1482
|
+
[1m[36m (40.5ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1483
|
+
ccu.table_name AS foreign_table_name,
|
1484
|
+
ccu.column_name AS foreign_column_name
|
1485
|
+
FROM information_schema.table_constraints AS tc
|
1486
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1487
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1488
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1489
|
+
[1m[35m (69.2ms)[0m ALTER TABLE crimes DROP CONSTRAINT fk_rails_ca9866c40c;
|
1490
|
+
[1m[36m (0.5ms)[0m [1mSHOW constraint_exclusion;[0m
|
1491
|
+
[1m[36m (163.7ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1492
|
+
DECLARE
|
1493
|
+
colname text := 'specialization';
|
1494
|
+
colval text := NEW.specialization;
|
1495
|
+
tblname text := 'bandits_' || colval;
|
1496
|
+
BEGIN
|
1497
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1498
|
+
EXECUTE 'CREATE TABLE '
|
1499
|
+
|| tblname
|
1500
|
+
|| '(check ('
|
1501
|
+
|| quote_ident(colname)
|
1502
|
+
|| '='
|
1503
|
+
|| quote_literal(colval)
|
1504
|
+
|| ')) INHERITS ('
|
1505
|
+
|| TG_RELNAME
|
1506
|
+
|| ');';
|
1507
|
+
END IF;
|
1508
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1509
|
+
RETURN NEW;
|
1510
|
+
END;
|
1511
|
+
$$ LANGUAGE plpgsql;[0m
|
1512
|
+
[1m[35m (40.8ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1513
|
+
CREATE TRIGGER insert_bandits_trigger
|
1514
|
+
BEFORE INSERT ON bandits
|
1515
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1516
|
+
[1m[36m (10.0ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1517
|
+
DECLARE
|
1518
|
+
row bandits%rowtype;
|
1519
|
+
BEGIN
|
1520
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1521
|
+
RETURN row;
|
1522
|
+
END;
|
1523
|
+
$$ LANGUAGE plpgsql;[0m
|
1524
|
+
[1m[35m (10.2ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1525
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1526
|
+
AFTER INSERT ON bandits
|
1527
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1528
|
+
[1m[36m (67.4ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1529
|
+
ccu.table_name AS foreign_table_name,
|
1530
|
+
ccu.column_name AS foreign_column_name
|
1531
|
+
FROM information_schema.table_constraints AS tc
|
1532
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1533
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1534
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1535
|
+
[1m[35m (0.4ms)[0m SHOW constraint_exclusion;
|
1536
|
+
[1m[36m (63.6ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1537
|
+
DECLARE
|
1538
|
+
colname text := 'specialization';
|
1539
|
+
colval text := NEW.specialization;
|
1540
|
+
tblname text := 'bandits_' || colval;
|
1541
|
+
BEGIN
|
1542
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1543
|
+
EXECUTE 'CREATE TABLE '
|
1544
|
+
|| tblname
|
1545
|
+
|| '(check ('
|
1546
|
+
|| quote_ident(colname)
|
1547
|
+
|| '='
|
1548
|
+
|| quote_literal(colval)
|
1549
|
+
|| ')) INHERITS ('
|
1550
|
+
|| TG_RELNAME
|
1551
|
+
|| ');';
|
1552
|
+
END IF;
|
1553
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1554
|
+
RETURN NEW;
|
1555
|
+
END;
|
1556
|
+
$$ LANGUAGE plpgsql;[0m
|
1557
|
+
[1m[35m (31.0ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1558
|
+
CREATE TRIGGER insert_bandits_trigger
|
1559
|
+
BEFORE INSERT ON bandits
|
1560
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1561
|
+
[1m[36m (10.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1562
|
+
DECLARE
|
1563
|
+
row bandits%rowtype;
|
1564
|
+
BEGIN
|
1565
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1566
|
+
RETURN row;
|
1567
|
+
END;
|
1568
|
+
$$ LANGUAGE plpgsql;[0m
|
1569
|
+
[1m[35m (10.7ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1570
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1571
|
+
AFTER INSERT ON bandits
|
1572
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1573
|
+
[1m[36m (36.3ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1574
|
+
ccu.table_name AS foreign_table_name,
|
1575
|
+
ccu.column_name AS foreign_column_name
|
1576
|
+
FROM information_schema.table_constraints AS tc
|
1577
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1578
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1579
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1580
|
+
[1m[35m (0.5ms)[0m SHOW constraint_exclusion;
|
1581
|
+
[1m[36m (21.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1582
|
+
DECLARE
|
1583
|
+
colname text := 'specification';
|
1584
|
+
colval text := NEW.specification;
|
1585
|
+
tblname text := 'bandits_' || colval;
|
1586
|
+
BEGIN
|
1587
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1588
|
+
EXECUTE 'CREATE TABLE '
|
1589
|
+
|| tblname
|
1590
|
+
|| '(check ('
|
1591
|
+
|| quote_ident(colname)
|
1592
|
+
|| '='
|
1593
|
+
|| quote_literal(colval)
|
1594
|
+
|| ')) INHERITS ('
|
1595
|
+
|| TG_RELNAME
|
1596
|
+
|| ');';
|
1597
|
+
END IF;
|
1598
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1599
|
+
RETURN NEW;
|
1600
|
+
END;
|
1601
|
+
$$ LANGUAGE plpgsql;[0m
|
1602
|
+
[1m[35m (13.5ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1603
|
+
CREATE TRIGGER insert_bandits_trigger
|
1604
|
+
BEFORE INSERT ON bandits
|
1605
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1606
|
+
[1m[36m (64.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1607
|
+
DECLARE
|
1608
|
+
row bandits%rowtype;
|
1609
|
+
BEGIN
|
1610
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1611
|
+
RETURN row;
|
1612
|
+
END;
|
1613
|
+
$$ LANGUAGE plpgsql;[0m
|
1614
|
+
[1m[35m (13.3ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1615
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1616
|
+
AFTER INSERT ON bandits
|
1617
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1618
|
+
[1m[36m (419.7ms)[0m [1mSELECT 1 FROM information_schema.columns WHERE table_name ='bandits' AND column_name = 'idd';[0m
|
1619
|
+
[1m[36m (491.5ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1620
|
+
DECLARE
|
1621
|
+
colname text := 'specialization';
|
1622
|
+
colval text := NEW.specialization;
|
1623
|
+
tblname text := 'bandits_' || colval;
|
1624
|
+
BEGIN
|
1625
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1626
|
+
EXECUTE 'CREATE TABLE '
|
1627
|
+
|| tblname
|
1628
|
+
|| '(check ('
|
1629
|
+
|| quote_ident(colname)
|
1630
|
+
|| '='
|
1631
|
+
|| quote_literal(colval)
|
1632
|
+
|| ')) INHERITS ('
|
1633
|
+
|| TG_RELNAME
|
1634
|
+
|| ');';
|
1635
|
+
END IF;
|
1636
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1637
|
+
RETURN NEW;
|
1638
|
+
END;
|
1639
|
+
$$ LANGUAGE plpgsql;[0m
|
1640
|
+
[1m[35m (411.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1641
|
+
CREATE TRIGGER insert_bandits_trigger
|
1642
|
+
BEFORE INSERT ON bandits
|
1643
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1644
|
+
[1m[36m (12.7ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1645
|
+
DECLARE
|
1646
|
+
row bandits%rowtype;
|
1647
|
+
BEGIN
|
1648
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1649
|
+
RETURN row;
|
1650
|
+
END;
|
1651
|
+
$$ LANGUAGE plpgsql;[0m
|
1652
|
+
[1m[35m (8.5ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1653
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1654
|
+
AFTER INSERT ON bandits
|
1655
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1656
|
+
[1m[36m (407.1ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1657
|
+
ccu.table_name AS foreign_table_name,
|
1658
|
+
ccu.column_name AS foreign_column_name
|
1659
|
+
FROM information_schema.table_constraints AS tc
|
1660
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1661
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1662
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1663
|
+
[1m[35m (0.4ms)[0m SHOW constraint_exclusion;
|
1664
|
+
[1m[36m (287.4ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1665
|
+
DECLARE
|
1666
|
+
colname text := 'id';
|
1667
|
+
colval := NEW.id;
|
1668
|
+
step integer := ROUND(colval::integer / '100'::integer);
|
1669
|
+
tblname text := 'bandits_' || step;
|
1670
|
+
BEGIN
|
1671
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1672
|
+
EXECUTE 'CREATE TABLE '
|
1673
|
+
|| tblname
|
1674
|
+
|| '(check (ROUND('
|
1675
|
+
|| quote_ident(colname)
|
1676
|
+
|| '/ 100)='
|
1677
|
+
|| step
|
1678
|
+
|| ')) INHERITS ('
|
1679
|
+
|| TG_RELNAME
|
1680
|
+
|| ');';
|
1681
|
+
END IF;
|
1682
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1683
|
+
RETURN NEW;
|
1684
|
+
END;
|
1685
|
+
$$ LANGUAGE plpgsql;[0m
|
1686
|
+
[1m[36m (32.1ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1687
|
+
DECLARE
|
1688
|
+
colname text := 'id';
|
1689
|
+
colval integer := NEW.id;
|
1690
|
+
step integer := ROUND(colval / '100'::integer);
|
1691
|
+
tblname text := 'bandits_' || step;
|
1692
|
+
BEGIN
|
1693
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1694
|
+
EXECUTE 'CREATE TABLE '
|
1695
|
+
|| tblname
|
1696
|
+
|| '(check (ROUND('
|
1697
|
+
|| quote_ident(colname)
|
1698
|
+
|| '/ 100)='
|
1699
|
+
|| step
|
1700
|
+
|| ')) INHERITS ('
|
1701
|
+
|| TG_RELNAME
|
1702
|
+
|| ');';
|
1703
|
+
END IF;
|
1704
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1705
|
+
RETURN NEW;
|
1706
|
+
END;
|
1707
|
+
$$ LANGUAGE plpgsql;[0m
|
1708
|
+
[1m[35m (55.8ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1709
|
+
CREATE TRIGGER insert_bandits_trigger
|
1710
|
+
BEFORE INSERT ON bandits
|
1711
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1712
|
+
[1m[36m (10.4ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1713
|
+
DECLARE
|
1714
|
+
row bandits%rowtype;
|
1715
|
+
BEGIN
|
1716
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1717
|
+
RETURN row;
|
1718
|
+
END;
|
1719
|
+
$$ LANGUAGE plpgsql;[0m
|
1720
|
+
[1m[35m (10.7ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1721
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1722
|
+
AFTER INSERT ON bandits
|
1723
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1724
|
+
[1m[36m (63.3ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1725
|
+
ccu.table_name AS foreign_table_name,
|
1726
|
+
ccu.column_name AS foreign_column_name
|
1727
|
+
FROM information_schema.table_constraints AS tc
|
1728
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1729
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1730
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1731
|
+
[1m[35m (0.4ms)[0m SHOW constraint_exclusion;
|
1732
|
+
[1m[36m (0.4ms)[0m [1mBEGIN[0m
|
1733
|
+
[1m[35mSQL (205.9ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al Cap"], ["specialization", "bootlegger"], ["created_at", "2016-03-12 16:00:24.180197"], ["updated_at", "2016-03-12 16:00:24.180197"]]
|
1734
|
+
[1m[36m (48.8ms)[0m [1mCOMMIT[0m
|
1735
|
+
[1m[35m (0.8ms)[0m BEGIN
|
1736
|
+
[1m[36mSQL (68.1ms)[0m [1mINSERT INTO "bandits" ("id", "name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id"[0m [["id", 200], ["name", "Al Cap"], ["specialization", "bootlegger"], ["created_at", "2016-03-12 16:00:37.954027"], ["updated_at", "2016-03-12 16:00:37.954027"]]
|
1737
|
+
[1m[35m (12.6ms)[0m COMMIT
|
1738
|
+
[1m[36mBandit Load (3.2ms)[0m [1mSELECT "bandits".* FROM "bandits"[0m
|
1739
|
+
[1m[36m (45.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1740
|
+
DECLARE
|
1741
|
+
colname text := 'id';
|
1742
|
+
colval integer := NEW.id;
|
1743
|
+
threshold integer := '10';
|
1744
|
+
step integer := ROUND(colval / threshold);
|
1745
|
+
tblname text := 'bandits_' || step;
|
1746
|
+
BEGIN
|
1747
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1748
|
+
EXECUTE 'CREATE TABLE '
|
1749
|
+
|| tblname
|
1750
|
+
|| '(check (ROUND('
|
1751
|
+
|| quote_ident(colname)
|
1752
|
+
|| '/'
|
1753
|
+
|| threshold
|
1754
|
+
|| ')='
|
1755
|
+
|| step
|
1756
|
+
|| ')) INHERITS ('
|
1757
|
+
|| TG_RELNAME
|
1758
|
+
|| ');';
|
1759
|
+
END IF;
|
1760
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1761
|
+
RETURN NEW;
|
1762
|
+
END;
|
1763
|
+
$$ LANGUAGE plpgsql;[0m
|
1764
|
+
[1m[35m (44.2ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1765
|
+
CREATE TRIGGER insert_bandits_trigger
|
1766
|
+
BEFORE INSERT ON bandits
|
1767
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1768
|
+
[1m[36m (7.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1769
|
+
DECLARE
|
1770
|
+
row bandits%rowtype;
|
1771
|
+
BEGIN
|
1772
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1773
|
+
RETURN row;
|
1774
|
+
END;
|
1775
|
+
$$ LANGUAGE plpgsql;[0m
|
1776
|
+
[1m[35m (8.9ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1777
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1778
|
+
AFTER INSERT ON bandits
|
1779
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1780
|
+
[1m[36m (103.0ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1781
|
+
ccu.table_name AS foreign_table_name,
|
1782
|
+
ccu.column_name AS foreign_column_name
|
1783
|
+
FROM information_schema.table_constraints AS tc
|
1784
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1785
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1786
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1787
|
+
[1m[35m (0.4ms)[0m SHOW constraint_exclusion;
|
1788
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
1789
|
+
[1m[35mSQL (69.3ms)[0m INSERT INTO "bandits" ("id", "name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["id", 205], ["name", "Al Cap"], ["specialization", "bootlegger"], ["created_at", "2016-03-12 16:05:59.164453"], ["updated_at", "2016-03-12 16:05:59.164453"]]
|
1790
|
+
[1m[36m (23.2ms)[0m [1mCOMMIT[0m
|
1791
|
+
[1m[36m (233.0ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1792
|
+
DECLARE
|
1793
|
+
colname text := 'created_at';
|
1794
|
+
colval timestamp := NEW.created_at;
|
1795
|
+
pattern text := 'YYYY';
|
1796
|
+
sample text := TO_CHAR(colval, pattern);
|
1797
|
+
tblname text := 'bandits_' || colval;
|
1798
|
+
BEGIN
|
1799
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1800
|
+
EXECUTE 'CREATE TABLE '
|
1801
|
+
|| tblname
|
1802
|
+
|| '(check (TO_CHAR('
|
1803
|
+
|| quote_ident(colname)
|
1804
|
+
|| ','
|
1805
|
+
|| pattern
|
1806
|
+
|| ')='
|
1807
|
+
|| sample
|
1808
|
+
|| ')) INHERITS ('
|
1809
|
+
|| TG_RELNAME
|
1810
|
+
|| ');';
|
1811
|
+
END IF;
|
1812
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1813
|
+
RETURN NEW;
|
1814
|
+
END;
|
1815
|
+
$$ LANGUAGE plpgsql;[0m
|
1816
|
+
[1m[35m (128.7ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1817
|
+
CREATE TRIGGER insert_bandits_trigger
|
1818
|
+
BEFORE INSERT ON bandits
|
1819
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1820
|
+
[1m[36m (11.0ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1821
|
+
DECLARE
|
1822
|
+
row bandits%rowtype;
|
1823
|
+
BEGIN
|
1824
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1825
|
+
RETURN row;
|
1826
|
+
END;
|
1827
|
+
$$ LANGUAGE plpgsql;[0m
|
1828
|
+
[1m[35m (10.6ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1829
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1830
|
+
AFTER INSERT ON bandits
|
1831
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1832
|
+
[1m[36m (106.0ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1833
|
+
ccu.table_name AS foreign_table_name,
|
1834
|
+
ccu.column_name AS foreign_column_name
|
1835
|
+
FROM information_schema.table_constraints AS tc
|
1836
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1837
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1838
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1839
|
+
[1m[35m (0.5ms)[0m SHOW constraint_exclusion;
|
1840
|
+
[1m[36m (0.4ms)[0m [1mBEGIN[0m
|
1841
|
+
[1m[35mSQL (390.7ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al Cap"], ["specialization", "bootlegger"], ["created_at", "2016-03-12 17:38:15.437632"], ["updated_at", "2016-03-12 17:38:15.437632"]]
|
1842
|
+
[1m[36m (0.7ms)[0m [1mROLLBACK[0m
|
1843
|
+
[1m[36m (150.9ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1844
|
+
DECLARE
|
1845
|
+
colname text := 'created_at';
|
1846
|
+
colval timestamp := NEW.created_at;
|
1847
|
+
pattern text := 'YYYY';
|
1848
|
+
sample text := TO_CHAR(colval, pattern);
|
1849
|
+
tblname text := 'bandits_' || sample;
|
1850
|
+
BEGIN
|
1851
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1852
|
+
EXECUTE 'CREATE TABLE '
|
1853
|
+
|| tblname
|
1854
|
+
|| '(check (TO_CHAR('
|
1855
|
+
|| quote_ident(colname)
|
1856
|
+
|| ','
|
1857
|
+
|| pattern
|
1858
|
+
|| ')='
|
1859
|
+
|| sample
|
1860
|
+
|| ')) INHERITS ('
|
1861
|
+
|| TG_RELNAME
|
1862
|
+
|| ');';
|
1863
|
+
END IF;
|
1864
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1865
|
+
RETURN NEW;
|
1866
|
+
END;
|
1867
|
+
$$ LANGUAGE plpgsql;[0m
|
1868
|
+
[1m[35m (108.5ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1869
|
+
CREATE TRIGGER insert_bandits_trigger
|
1870
|
+
BEFORE INSERT ON bandits
|
1871
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1872
|
+
[1m[36m (10.5ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1873
|
+
DECLARE
|
1874
|
+
row bandits%rowtype;
|
1875
|
+
BEGIN
|
1876
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1877
|
+
RETURN row;
|
1878
|
+
END;
|
1879
|
+
$$ LANGUAGE plpgsql;[0m
|
1880
|
+
[1m[35m (10.9ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1881
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1882
|
+
AFTER INSERT ON bandits
|
1883
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1884
|
+
[1m[36m (69.7ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1885
|
+
ccu.table_name AS foreign_table_name,
|
1886
|
+
ccu.column_name AS foreign_column_name
|
1887
|
+
FROM information_schema.table_constraints AS tc
|
1888
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1889
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1890
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1891
|
+
[1m[35m (0.7ms)[0m SHOW constraint_exclusion;
|
1892
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
1893
|
+
[1m[35mSQL (188.8ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al Cap"], ["specialization", "bootlegger"], ["created_at", "2016-03-12 17:39:45.055084"], ["updated_at", "2016-03-12 17:39:45.055084"]]
|
1894
|
+
[1m[36m (0.4ms)[0m [1mROLLBACK[0m
|
1895
|
+
[1m[36m (81.8ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
1896
|
+
DECLARE
|
1897
|
+
colname text := 'created_at';
|
1898
|
+
colval timestamp := NEW.created_at;
|
1899
|
+
pattern text := 'YYYY';
|
1900
|
+
sample text := TO_CHAR(colval, pattern);
|
1901
|
+
tblname text := 'bandits_' || sample;
|
1902
|
+
BEGIN
|
1903
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
1904
|
+
EXECUTE 'CREATE TABLE '
|
1905
|
+
|| tblname
|
1906
|
+
|| '(check (TO_CHAR('
|
1907
|
+
|| quote_ident(colname)
|
1908
|
+
|| ','
|
1909
|
+
|| quote_literal(pattern)
|
1910
|
+
|| ')='
|
1911
|
+
|| quote_literal(sample)
|
1912
|
+
|| ')) INHERITS ('
|
1913
|
+
|| TG_RELNAME
|
1914
|
+
|| ');';
|
1915
|
+
END IF;
|
1916
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
1917
|
+
RETURN NEW;
|
1918
|
+
END;
|
1919
|
+
$$ LANGUAGE plpgsql;[0m
|
1920
|
+
[1m[35m (89.5ms)[0m DROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
1921
|
+
CREATE TRIGGER insert_bandits_trigger
|
1922
|
+
BEFORE INSERT ON bandits
|
1923
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
1924
|
+
[1m[36m (14.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
1925
|
+
DECLARE
|
1926
|
+
row bandits%rowtype;
|
1927
|
+
BEGIN
|
1928
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
1929
|
+
RETURN row;
|
1930
|
+
END;
|
1931
|
+
$$ LANGUAGE plpgsql;[0m
|
1932
|
+
[1m[35m (7.4ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
1933
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
1934
|
+
AFTER INSERT ON bandits
|
1935
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();
|
1936
|
+
[1m[36m (87.9ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
1937
|
+
ccu.table_name AS foreign_table_name,
|
1938
|
+
ccu.column_name AS foreign_column_name
|
1939
|
+
FROM information_schema.table_constraints AS tc
|
1940
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
1941
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
1942
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
1943
|
+
[1m[35m (0.4ms)[0m SHOW constraint_exclusion;
|
1944
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
1945
|
+
[1m[35mSQL (343.6ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Al Cap"], ["specialization", "bootlegger"], ["created_at", "2016-03-12 17:51:02.433456"], ["updated_at", "2016-03-12 17:51:02.433456"]]
|
1946
|
+
[1m[36m (37.1ms)[0m [1mCOMMIT[0m
|
1947
|
+
[1m[36m (172.9ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
1948
|
+
[1m[35m (61.5ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
1949
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.6ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
1950
|
+
Migrating to CreateGangs (20160306173540)
|
1951
|
+
[1m[35m (0.4ms)[0m BEGIN
|
1952
|
+
[1m[36m (204.4ms)[0m [1mCREATE TABLE "gangs" ("id" serial primary key, "title" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
1953
|
+
[1m[35mSQL (20.9ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306173540"]]
|
1954
|
+
[1m[36m (20.7ms)[0m [1mCOMMIT[0m
|
1955
|
+
Migrating to CreateBandits (20160306174017)
|
1956
|
+
[1m[35m (0.3ms)[0m BEGIN
|
1957
|
+
[1m[36m (114.9ms)[0m [1mCREATE TABLE "bandits" ("id" serial primary key, "name" character varying, "specialization" character varying, "date_of_birth" date, "gang_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
1958
|
+
[1m[35m (47.2ms)[0m CREATE INDEX "index_bandits_on_gang_id" ON "bandits" ("gang_id")
|
1959
|
+
[1m[36m (28.3ms)[0m [1mALTER TABLE "bandits" ADD CONSTRAINT "fk_rails_7411a14fb1"
|
1960
|
+
FOREIGN KEY ("gang_id")
|
1961
|
+
REFERENCES "gangs" ("id")
|
1962
|
+
[0m
|
1963
|
+
[1m[35mSQL (23.6ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174017"]]
|
1964
|
+
[1m[36m (19.3ms)[0m [1mCOMMIT[0m
|
1965
|
+
Migrating to CreateCrimes (20160306174042)
|
1966
|
+
[1m[35m (0.6ms)[0m BEGIN
|
1967
|
+
[1m[36m (127.1ms)[0m [1mCREATE TABLE "crimes" ("id" serial primary key, "title" character varying, "bandit_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
1968
|
+
[1m[35m (51.8ms)[0m CREATE INDEX "index_crimes_on_bandit_id" ON "crimes" ("bandit_id")
|
1969
|
+
[1m[36m (2.8ms)[0m [1mALTER TABLE "crimes" ADD CONSTRAINT "fk_rails_ca9866c40c"
|
1970
|
+
FOREIGN KEY ("bandit_id")
|
1971
|
+
REFERENCES "bandits" ("id")
|
1972
|
+
[0m
|
1973
|
+
[1m[35mSQL (1.2ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174042"]]
|
1974
|
+
[1m[36m (11.2ms)[0m [1mCOMMIT[0m
|
1975
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.9ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
1976
|
+
[1m[36m (29.9ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
1977
|
+
FROM pg_constraint c
|
1978
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
1979
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
1980
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
1981
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
1982
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
1983
|
+
WHERE c.contype = 'f'
|
1984
|
+
AND t1.relname = 'bandits'
|
1985
|
+
AND t3.nspname = ANY (current_schemas(false))
|
1986
|
+
ORDER BY c.conname
|
1987
|
+
[0m
|
1988
|
+
[1m[35m (5.7ms)[0m SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
1989
|
+
FROM pg_constraint c
|
1990
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
1991
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
1992
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
1993
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
1994
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
1995
|
+
WHERE c.contype = 'f'
|
1996
|
+
AND t1.relname = 'crimes'
|
1997
|
+
AND t3.nspname = ANY (current_schemas(false))
|
1998
|
+
ORDER BY c.conname
|
1999
|
+
|
2000
|
+
[1m[36m (5.4ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
2001
|
+
FROM pg_constraint c
|
2002
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
2003
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
2004
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
2005
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
2006
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
2007
|
+
WHERE c.contype = 'f'
|
2008
|
+
AND t1.relname = 'gangs'
|
2009
|
+
AND t3.nspname = ANY (current_schemas(false))
|
2010
|
+
ORDER BY c.conname
|
2011
|
+
[0m
|
2012
|
+
[1m[36m (50.0ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2013
|
+
WHERE table_name ='bandits'
|
2014
|
+
AND column_name = 'date_of_birth';[0m
|
2015
|
+
[1m[36m (9.0ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2016
|
+
WHERE table_name ='bandits'
|
2017
|
+
AND column_name = 'date_of_birth';[0m
|
2018
|
+
[1m[35m (141.4ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2019
|
+
DECLARE
|
2020
|
+
colname text := 'date_of_birth';
|
2021
|
+
colval timestamp := NEW.date_of_birth;
|
2022
|
+
pattern text := 'MM';
|
2023
|
+
sample text := TO_CHAR(colval, pattern);
|
2024
|
+
tblname text := 'bandits_' || sample;
|
2025
|
+
BEGIN
|
2026
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2027
|
+
EXECUTE 'CREATE TABLE '
|
2028
|
+
|| tblname
|
2029
|
+
|| '(check (TO_CHAR('
|
2030
|
+
|| quote_ident(colname)
|
2031
|
+
|| ','
|
2032
|
+
|| quote_literal(pattern)
|
2033
|
+
|| ')='
|
2034
|
+
|| quote_literal(sample)
|
2035
|
+
|| ')) INHERITS ('
|
2036
|
+
|| TG_RELNAME
|
2037
|
+
|| ');';
|
2038
|
+
END IF;
|
2039
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2040
|
+
RETURN NEW;
|
2041
|
+
END;
|
2042
|
+
$$ LANGUAGE plpgsql;
|
2043
|
+
[1m[36m (66.7ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2044
|
+
CREATE TRIGGER insert_bandits_trigger
|
2045
|
+
BEFORE INSERT ON bandits
|
2046
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2047
|
+
[1m[35m (9.9ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2048
|
+
DECLARE
|
2049
|
+
row bandits%rowtype;
|
2050
|
+
BEGIN
|
2051
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2052
|
+
RETURN row;
|
2053
|
+
END;
|
2054
|
+
$$ LANGUAGE plpgsql;
|
2055
|
+
[1m[36m (10.7ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2056
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2057
|
+
AFTER INSERT ON bandits
|
2058
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2059
|
+
[1m[35m (50.4ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2060
|
+
ccu.table_name AS foreign_table_name,
|
2061
|
+
ccu.column_name AS foreign_column_name
|
2062
|
+
FROM information_schema.table_constraints AS tc
|
2063
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2064
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2065
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2066
|
+
[1m[36m (3.7ms)[0m [1mALTER TABLE crimes DROP CONSTRAINT fk_rails_ca9866c40c;[0m
|
2067
|
+
[1m[35m (0.5ms)[0m SHOW constraint_exclusion;
|
2068
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
2069
|
+
[1m[35mSQL (69.4ms)[0m INSERT INTO "bandits" ("name", "specialization", "date_of_birth", "created_at", "updated_at") VALUES ($1, $2, $3, $4, $5) RETURNING "id" [["name", "Al Cap"], ["specialization", "bootlegger"], ["date_of_birth", "2016-03-11"], ["created_at", "2016-03-12 19:30:19.210861"], ["updated_at", "2016-03-12 19:30:19.210861"]]
|
2070
|
+
[1m[36m (17.2ms)[0m [1mCOMMIT[0m
|
2071
|
+
[1m[36m (280.7ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2072
|
+
WHERE table_name ='bandits'
|
2073
|
+
AND column_name = 'specialization';[0m
|
2074
|
+
[1m[35m (228.6ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2075
|
+
ccu.table_name AS foreign_table_name,
|
2076
|
+
ccu.column_name AS foreign_column_name
|
2077
|
+
FROM information_schema.table_constraints AS tc
|
2078
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2079
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2080
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2081
|
+
[1m[36m (0.9ms)[0m [1mSHOW constraint_exclusion;[0m
|
2082
|
+
[1m[36m (22.5ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2083
|
+
WHERE table_name ='bandits'
|
2084
|
+
AND column_name = 'created_at';[0m
|
2085
|
+
[1m[35m (487.1ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2086
|
+
DECLARE
|
2087
|
+
colname text := 'created_at';
|
2088
|
+
colval timestamp := NEW.created_at;
|
2089
|
+
pattern text := 'YYYY';
|
2090
|
+
sample text := TO_CHAR(colval, pattern);
|
2091
|
+
tblname text := 'bandits_' || sample;
|
2092
|
+
BEGIN
|
2093
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2094
|
+
EXECUTE 'CREATE TABLE '
|
2095
|
+
|| tblname
|
2096
|
+
|| '(check (TO_CHAR('
|
2097
|
+
|| quote_ident(colname)
|
2098
|
+
|| ','
|
2099
|
+
|| quote_literal(pattern)
|
2100
|
+
|| ')='
|
2101
|
+
|| quote_literal(sample)
|
2102
|
+
|| ')) INHERITS ('
|
2103
|
+
|| TG_RELNAME
|
2104
|
+
|| ');';
|
2105
|
+
END IF;
|
2106
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2107
|
+
RETURN NEW;
|
2108
|
+
END;
|
2109
|
+
$$ LANGUAGE plpgsql;
|
2110
|
+
[1m[36m (294.0ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2111
|
+
CREATE TRIGGER insert_bandits_trigger
|
2112
|
+
BEFORE INSERT ON bandits
|
2113
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2114
|
+
[1m[35m (10.4ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2115
|
+
DECLARE
|
2116
|
+
row bandits%rowtype;
|
2117
|
+
BEGIN
|
2118
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2119
|
+
RETURN row;
|
2120
|
+
END;
|
2121
|
+
$$ LANGUAGE plpgsql;
|
2122
|
+
[1m[36m (21.8ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2123
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2124
|
+
AFTER INSERT ON bandits
|
2125
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2126
|
+
[1m[35m (74.1ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2127
|
+
ccu.table_name AS foreign_table_name,
|
2128
|
+
ccu.column_name AS foreign_column_name
|
2129
|
+
FROM information_schema.table_constraints AS tc
|
2130
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2131
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2132
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2133
|
+
[1m[36m (0.8ms)[0m [1mSHOW constraint_exclusion;[0m
|
2134
|
+
[1m[36m (566.1ms)[0m [1mSELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2135
|
+
ccu.table_name AS foreign_table_name,
|
2136
|
+
ccu.column_name AS foreign_column_name
|
2137
|
+
FROM information_schema.table_constraints AS tc
|
2138
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2139
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2140
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';[0m
|
2141
|
+
[1m[35m (0.6ms)[0m SHOW constraint_exclusion;
|
2142
|
+
[1m[36m (327.1ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2143
|
+
WHERE table_name ='ban'
|
2144
|
+
AND column_name = 'id';[0m
|
2145
|
+
[1m[36m (17.2ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2146
|
+
WHERE table_name ='bn'
|
2147
|
+
AND column_name = 'dd';[0m
|
2148
|
+
[1m[36m (9.1ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2149
|
+
WHERE table_name ='ban'
|
2150
|
+
AND column_name = 'id';[0m
|
2151
|
+
[1m[36m (71.7ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2152
|
+
WHERE table_name ='bandits'
|
2153
|
+
AND column_name = 'id';[0m
|
2154
|
+
[1m[36m (9.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2155
|
+
WHERE table_name ='bandits'
|
2156
|
+
AND column_name = 'id';[0m
|
2157
|
+
[1m[36m (13.4ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2158
|
+
WHERE table_name ='bandits'
|
2159
|
+
AND column_name = 'id';[0m
|
2160
|
+
[1m[36m (9.1ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2161
|
+
WHERE table_name ='bandits'
|
2162
|
+
AND column_name = 'id';[0m
|
2163
|
+
[1m[36m (9.1ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2164
|
+
WHERE table_name ='bandits'
|
2165
|
+
AND column_name = 'id';[0m
|
2166
|
+
[1m[35m (607.2ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2167
|
+
DECLARE
|
2168
|
+
colname text := 'id';
|
2169
|
+
colval integer := NEW.id;
|
2170
|
+
threshold integer := '30';
|
2171
|
+
step integer := ROUND(colval / threshold);
|
2172
|
+
tblname text := 'bandits_' || step;
|
2173
|
+
BEGIN
|
2174
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2175
|
+
EXECUTE 'CREATE TABLE '
|
2176
|
+
|| tblname
|
2177
|
+
|| '(check (ROUND('
|
2178
|
+
|| quote_ident(colname)
|
2179
|
+
|| '/'
|
2180
|
+
|| threshold
|
2181
|
+
|| ')='
|
2182
|
+
|| step
|
2183
|
+
|| ')) INHERITS ('
|
2184
|
+
|| TG_RELNAME
|
2185
|
+
|| ');';
|
2186
|
+
END IF;
|
2187
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2188
|
+
RETURN NEW;
|
2189
|
+
END;
|
2190
|
+
$$ LANGUAGE plpgsql;
|
2191
|
+
[1m[36m (284.8ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2192
|
+
CREATE TRIGGER insert_bandits_trigger
|
2193
|
+
BEFORE INSERT ON bandits
|
2194
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2195
|
+
[1m[35m (10.4ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2196
|
+
DECLARE
|
2197
|
+
row bandits%rowtype;
|
2198
|
+
BEGIN
|
2199
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2200
|
+
RETURN row;
|
2201
|
+
END;
|
2202
|
+
$$ LANGUAGE plpgsql;
|
2203
|
+
[1m[36m (7.3ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2204
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2205
|
+
AFTER INSERT ON bandits
|
2206
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2207
|
+
[1m[35m (113.9ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2208
|
+
ccu.table_name AS foreign_table_name,
|
2209
|
+
ccu.column_name AS foreign_column_name
|
2210
|
+
FROM information_schema.table_constraints AS tc
|
2211
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2212
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2213
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2214
|
+
[1m[36m (0.4ms)[0m [1mSHOW constraint_exclusion;[0m
|
2215
|
+
[1m[36m (11.0ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2216
|
+
WHERE table_name ='bandits'
|
2217
|
+
AND column_name = 'id';[0m
|
2218
|
+
[1m[35m (185.3ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2219
|
+
DECLARE
|
2220
|
+
colname text := 'id';
|
2221
|
+
colval text := NEW.id;
|
2222
|
+
tblname text := 'bandits_' || colval;
|
2223
|
+
BEGIN
|
2224
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2225
|
+
EXECUTE 'CREATE TABLE '
|
2226
|
+
|| tblname
|
2227
|
+
|| '(check ('
|
2228
|
+
|| quote_ident(colname)
|
2229
|
+
|| '='
|
2230
|
+
|| quote_literal(colval)
|
2231
|
+
|| ')) INHERITS ('
|
2232
|
+
|| TG_RELNAME
|
2233
|
+
|| ');';
|
2234
|
+
END IF;
|
2235
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2236
|
+
RETURN NEW;
|
2237
|
+
END;
|
2238
|
+
$$ LANGUAGE plpgsql;
|
2239
|
+
[1m[36m (43.4ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2240
|
+
CREATE TRIGGER insert_bandits_trigger
|
2241
|
+
BEFORE INSERT ON bandits
|
2242
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2243
|
+
[1m[35m (76.6ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2244
|
+
DECLARE
|
2245
|
+
row bandits%rowtype;
|
2246
|
+
BEGIN
|
2247
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2248
|
+
RETURN row;
|
2249
|
+
END;
|
2250
|
+
$$ LANGUAGE plpgsql;
|
2251
|
+
[1m[36m (12.7ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2252
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2253
|
+
AFTER INSERT ON bandits
|
2254
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2255
|
+
[1m[35m (54.4ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2256
|
+
ccu.table_name AS foreign_table_name,
|
2257
|
+
ccu.column_name AS foreign_column_name
|
2258
|
+
FROM information_schema.table_constraints AS tc
|
2259
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2260
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2261
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2262
|
+
[1m[36m (0.6ms)[0m [1mSHOW constraint_exclusion;[0m
|
2263
|
+
[1m[36m (8.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2264
|
+
WHERE table_name ='ban'
|
2265
|
+
AND column_name = 'id';[0m
|
2266
|
+
[1m[35m (122.7ms)[0m CREATE OR REPLACE FUNCTION ban_insert_master() RETURNS TRIGGER AS $$
|
2267
|
+
DECLARE
|
2268
|
+
colname text := 'id';
|
2269
|
+
colval text := NEW.id;
|
2270
|
+
tblname text := 'ban_' || colval;
|
2271
|
+
BEGIN
|
2272
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2273
|
+
EXECUTE 'CREATE TABLE '
|
2274
|
+
|| tblname
|
2275
|
+
|| '(check ('
|
2276
|
+
|| quote_ident(colname)
|
2277
|
+
|| '='
|
2278
|
+
|| quote_literal(colval)
|
2279
|
+
|| ')) INHERITS ('
|
2280
|
+
|| TG_RELNAME
|
2281
|
+
|| ');';
|
2282
|
+
END IF;
|
2283
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2284
|
+
RETURN NEW;
|
2285
|
+
END;
|
2286
|
+
$$ LANGUAGE plpgsql;
|
2287
|
+
[1m[36m (40.8ms)[0m [1mDROP TRIGGER IF EXISTS insert_ban_trigger ON ban;
|
2288
|
+
CREATE TRIGGER insert_ban_trigger
|
2289
|
+
BEFORE INSERT ON ban
|
2290
|
+
FOR EACH ROW EXECUTE PROCEDURE ban_insert_master();[0m
|
2291
|
+
[1m[36m (12.1ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2292
|
+
WHERE table_name ='ban'
|
2293
|
+
AND column_name = 'id';[0m
|
2294
|
+
[1m[35m (19.1ms)[0m CREATE OR REPLACE FUNCTION ban_insert_master() RETURNS TRIGGER AS $$
|
2295
|
+
DECLARE
|
2296
|
+
colname text := 'id';
|
2297
|
+
colval text := NEW.id;
|
2298
|
+
tblname text := 'ban_' || colval;
|
2299
|
+
BEGIN
|
2300
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2301
|
+
EXECUTE 'CREATE TABLE '
|
2302
|
+
|| tblname
|
2303
|
+
|| '(check ('
|
2304
|
+
|| quote_ident(colname)
|
2305
|
+
|| '='
|
2306
|
+
|| quote_literal(colval)
|
2307
|
+
|| ')) INHERITS ('
|
2308
|
+
|| TG_RELNAME
|
2309
|
+
|| ');';
|
2310
|
+
END IF;
|
2311
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2312
|
+
RETURN NEW;
|
2313
|
+
END;
|
2314
|
+
$$ LANGUAGE plpgsql;
|
2315
|
+
[1m[36m (0.9ms)[0m [1mDROP TRIGGER IF EXISTS insert_ban_trigger ON ban;
|
2316
|
+
CREATE TRIGGER insert_ban_trigger
|
2317
|
+
BEFORE INSERT ON ban
|
2318
|
+
FOR EACH ROW EXECUTE PROCEDURE ban_insert_master();[0m
|
2319
|
+
[1m[36m (9.2ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2320
|
+
WHERE table_name ='ban'
|
2321
|
+
AND column_name = 'id';[0m
|
2322
|
+
[1m[35m (27.1ms)[0m CREATE OR REPLACE FUNCTION ban_insert_master() RETURNS TRIGGER AS $$
|
2323
|
+
DECLARE
|
2324
|
+
colname text := 'id';
|
2325
|
+
colval text := NEW.id;
|
2326
|
+
tblname text := 'ban_' || colval;
|
2327
|
+
BEGIN
|
2328
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2329
|
+
EXECUTE 'CREATE TABLE '
|
2330
|
+
|| tblname
|
2331
|
+
|| '(check ('
|
2332
|
+
|| quote_ident(colname)
|
2333
|
+
|| '='
|
2334
|
+
|| quote_literal(colval)
|
2335
|
+
|| ')) INHERITS ('
|
2336
|
+
|| TG_RELNAME
|
2337
|
+
|| ');';
|
2338
|
+
END IF;
|
2339
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2340
|
+
RETURN NEW;
|
2341
|
+
END;
|
2342
|
+
$$ LANGUAGE plpgsql;
|
2343
|
+
[1m[36m (0.7ms)[0m [1mDROP TRIGGER IF EXISTS insert_ban_trigger ON ban;
|
2344
|
+
CREATE TRIGGER insert_ban_trigger
|
2345
|
+
BEFORE INSERT ON ban
|
2346
|
+
FOR EACH ROW EXECUTE PROCEDURE ban_insert_master();[0m
|
2347
|
+
[1m[36m (9.4ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2348
|
+
WHERE table_name ='ban'
|
2349
|
+
AND column_name = 'id';[0m
|
2350
|
+
[1m[36m (11.9ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2351
|
+
WHERE table_name ='bandits'
|
2352
|
+
AND column_name = 'idd';[0m
|
2353
|
+
[1m[36m (13.6ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2354
|
+
WHERE table_name ='ban'
|
2355
|
+
AND column_name = 'id';[0m
|
2356
|
+
[1m[36m (8.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2357
|
+
WHERE table_name ='band'
|
2358
|
+
AND column_name = 'id';[0m
|
2359
|
+
[1m[36m (8.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2360
|
+
WHERE table_name ='band'
|
2361
|
+
AND column_name = 'id';[0m
|
2362
|
+
[1m[36m (9.0ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2363
|
+
WHERE table_name ='band'
|
2364
|
+
AND column_name = 'id';[0m
|
2365
|
+
[1m[36m (9.5ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2366
|
+
WHERE table_name ='band'
|
2367
|
+
AND column_name = 'id';[0m
|
2368
|
+
[1m[36m (25.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2369
|
+
WHERE table_name ='bandits'
|
2370
|
+
AND column_name = 'created_at';[0m
|
2371
|
+
[1m[36m (9.0ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2372
|
+
WHERE table_name ='bandits'
|
2373
|
+
AND column_name = 'created_at';[0m
|
2374
|
+
[1m[36m (8.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2375
|
+
WHERE table_name ='band'
|
2376
|
+
AND column_name = 'id';[0m
|
2377
|
+
[1m[36m (17.3ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2378
|
+
WHERE table_name ='bandits'
|
2379
|
+
AND column_name = 'created_at';[0m
|
2380
|
+
[1m[36m (9.0ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2381
|
+
WHERE table_name ='bandits'
|
2382
|
+
AND column_name = 'id';[0m
|
2383
|
+
[1m[36m (150.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2384
|
+
WHERE table_name ='bandits'
|
2385
|
+
AND column_name = 'id';[0m
|
2386
|
+
[1m[35m (365.1ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2387
|
+
DECLARE
|
2388
|
+
colname text := 'id';
|
2389
|
+
colval integer := NEW.id;
|
2390
|
+
threshold integer := '30';
|
2391
|
+
step integer := ROUND(colval / threshold);
|
2392
|
+
tblname text := 'bandits_' || step;
|
2393
|
+
BEGIN
|
2394
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2395
|
+
EXECUTE 'CREATE TABLE '
|
2396
|
+
|| tblname
|
2397
|
+
|| '(check (ROUND('
|
2398
|
+
|| quote_ident(colname)
|
2399
|
+
|| '/'
|
2400
|
+
|| threshold
|
2401
|
+
|| ')='
|
2402
|
+
|| step
|
2403
|
+
|| ')) INHERITS ('
|
2404
|
+
|| TG_RELNAME
|
2405
|
+
|| ');';
|
2406
|
+
END IF;
|
2407
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2408
|
+
RETURN NEW;
|
2409
|
+
END;
|
2410
|
+
$$ LANGUAGE plpgsql;
|
2411
|
+
[1m[36m (142.5ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2412
|
+
CREATE TRIGGER insert_bandits_trigger
|
2413
|
+
BEFORE INSERT ON bandits
|
2414
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2415
|
+
[1m[35m (14.3ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2416
|
+
DECLARE
|
2417
|
+
row bandits%rowtype;
|
2418
|
+
BEGIN
|
2419
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2420
|
+
RETURN row;
|
2421
|
+
END;
|
2422
|
+
$$ LANGUAGE plpgsql;
|
2423
|
+
[1m[36m (7.2ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2424
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2425
|
+
AFTER INSERT ON bandits
|
2426
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2427
|
+
[1m[35m (201.0ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2428
|
+
ccu.table_name AS foreign_table_name,
|
2429
|
+
ccu.column_name AS foreign_column_name
|
2430
|
+
FROM information_schema.table_constraints AS tc
|
2431
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2432
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2433
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2434
|
+
[1m[36m (0.4ms)[0m [1mSHOW constraint_exclusion;[0m
|
2435
|
+
[1m[36m (299.4ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2436
|
+
WHERE table_name ='bandits'
|
2437
|
+
AND column_name = 'id';[0m
|
2438
|
+
[1m[35m (378.3ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2439
|
+
DECLARE
|
2440
|
+
colname text := 'id';
|
2441
|
+
colval integer := NEW.id;
|
2442
|
+
threshold integer := '7';
|
2443
|
+
step integer := ROUND(colval / threshold);
|
2444
|
+
tblname text := 'bandits_' || step;
|
2445
|
+
BEGIN
|
2446
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2447
|
+
EXECUTE 'CREATE TABLE '
|
2448
|
+
|| tblname
|
2449
|
+
|| '(check (ROUND('
|
2450
|
+
|| quote_ident(colname)
|
2451
|
+
|| '/'
|
2452
|
+
|| threshold
|
2453
|
+
|| ')='
|
2454
|
+
|| step
|
2455
|
+
|| ')) INHERITS ('
|
2456
|
+
|| TG_RELNAME
|
2457
|
+
|| ');';
|
2458
|
+
END IF;
|
2459
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2460
|
+
RETURN NEW;
|
2461
|
+
END;
|
2462
|
+
$$ LANGUAGE plpgsql;
|
2463
|
+
[1m[36m (543.3ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2464
|
+
CREATE TRIGGER insert_bandits_trigger
|
2465
|
+
BEFORE INSERT ON bandits
|
2466
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2467
|
+
[1m[35m (10.7ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2468
|
+
DECLARE
|
2469
|
+
row bandits%rowtype;
|
2470
|
+
BEGIN
|
2471
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2472
|
+
RETURN row;
|
2473
|
+
END;
|
2474
|
+
$$ LANGUAGE plpgsql;
|
2475
|
+
[1m[36m (6.1ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2476
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2477
|
+
AFTER INSERT ON bandits
|
2478
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2479
|
+
[1m[35m (197.8ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2480
|
+
ccu.table_name AS foreign_table_name,
|
2481
|
+
ccu.column_name AS foreign_column_name
|
2482
|
+
FROM information_schema.table_constraints AS tc
|
2483
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2484
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2485
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2486
|
+
[1m[36m (0.8ms)[0m [1mSHOW constraint_exclusion;[0m
|
2487
|
+
[1m[36m (9.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2488
|
+
WHERE table_name ='bjhj'
|
2489
|
+
AND column_name = 'jkjkj';[0m
|
2490
|
+
[1m[36m (153.1ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2491
|
+
WHERE table_name ='klkl'
|
2492
|
+
AND column_name = 'klk';[0m
|
2493
|
+
[1m[36m (8.7ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2494
|
+
WHERE table_name ='sdsdsds'
|
2495
|
+
AND column_name = 'id';[0m
|
2496
|
+
[1m[36m (73.0ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2497
|
+
WHERE table_name ='bandits'
|
2498
|
+
AND column_name = 'id';[0m
|
2499
|
+
[1m[35m (242.6ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2500
|
+
DECLARE
|
2501
|
+
colname text := 'id';
|
2502
|
+
colval text := NEW.id;
|
2503
|
+
tblname text := 'bandits_' || colval;
|
2504
|
+
BEGIN
|
2505
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2506
|
+
EXECUTE 'CREATE TABLE '
|
2507
|
+
|| tblname
|
2508
|
+
|| '(check ('
|
2509
|
+
|| quote_ident(colname)
|
2510
|
+
|| '='
|
2511
|
+
|| quote_literal(colval)
|
2512
|
+
|| ')) INHERITS ('
|
2513
|
+
|| TG_RELNAME
|
2514
|
+
|| ');';
|
2515
|
+
END IF;
|
2516
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2517
|
+
RETURN NEW;
|
2518
|
+
END;
|
2519
|
+
$$ LANGUAGE plpgsql;
|
2520
|
+
[1m[36m (132.0ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2521
|
+
CREATE TRIGGER insert_bandits_trigger
|
2522
|
+
BEFORE INSERT ON bandits
|
2523
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2524
|
+
[1m[35m (15.3ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2525
|
+
DECLARE
|
2526
|
+
row bandits%rowtype;
|
2527
|
+
BEGIN
|
2528
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2529
|
+
RETURN row;
|
2530
|
+
END;
|
2531
|
+
$$ LANGUAGE plpgsql;
|
2532
|
+
[1m[36m (6.4ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2533
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2534
|
+
AFTER INSERT ON bandits
|
2535
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2536
|
+
[1m[35m (232.1ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2537
|
+
ccu.table_name AS foreign_table_name,
|
2538
|
+
ccu.column_name AS foreign_column_name
|
2539
|
+
FROM information_schema.table_constraints AS tc
|
2540
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2541
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2542
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2543
|
+
[1m[36m (0.5ms)[0m [1mSHOW constraint_exclusion;[0m
|
2544
|
+
[1m[36mBandit Count (408.5ms)[0m [1mSELECT COUNT(*) FROM ONLY bandits[0m
|
2545
|
+
[1m[35mBandit Count (68.1ms)[0m SELECT COUNT(*) FROM bandits
|
2546
|
+
[1m[36mBandit Count (2.6ms)[0m [1mSELECT COUNT(*) FROM ONLY bandits[0m
|
2547
|
+
[1m[36m (250.5ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2548
|
+
WHERE table_name ='bandits'
|
2549
|
+
AND column_name = 'specialization';[0m
|
2550
|
+
[1m[35m (135.0ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2551
|
+
DECLARE
|
2552
|
+
colname text := 'specialization';
|
2553
|
+
colval text := NEW.specialization;
|
2554
|
+
tblname text := 'bandits_' || colval;
|
2555
|
+
BEGIN
|
2556
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2557
|
+
EXECUTE 'CREATE TABLE '
|
2558
|
+
|| tblname
|
2559
|
+
|| '(check ('
|
2560
|
+
|| quote_ident(colname)
|
2561
|
+
|| '='
|
2562
|
+
|| quote_literal(colval)
|
2563
|
+
|| ')) INHERITS ('
|
2564
|
+
|| TG_RELNAME
|
2565
|
+
|| ');';
|
2566
|
+
END IF;
|
2567
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2568
|
+
RETURN NEW;
|
2569
|
+
END;
|
2570
|
+
$$ LANGUAGE plpgsql;
|
2571
|
+
[1m[36m (110.6ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2572
|
+
CREATE TRIGGER insert_bandits_trigger
|
2573
|
+
BEFORE INSERT ON bandits
|
2574
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2575
|
+
[1m[35m (10.6ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2576
|
+
DECLARE
|
2577
|
+
row bandits%rowtype;
|
2578
|
+
BEGIN
|
2579
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2580
|
+
RETURN row;
|
2581
|
+
END;
|
2582
|
+
$$ LANGUAGE plpgsql;
|
2583
|
+
[1m[36m (10.2ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2584
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2585
|
+
AFTER INSERT ON bandits
|
2586
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2587
|
+
[1m[35m (174.6ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2588
|
+
ccu.table_name AS foreign_table_name,
|
2589
|
+
ccu.column_name AS foreign_column_name
|
2590
|
+
FROM information_schema.table_constraints AS tc
|
2591
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2592
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2593
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2594
|
+
[1m[36m (0.8ms)[0m [1mSHOW constraint_exclusion;[0m
|
2595
|
+
[1m[36m (0.4ms)[0m [1mBEGIN[0m
|
2596
|
+
[1m[35mSQL (406.8ms)[0m INSERT INTO "bandits" ("specialization", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["specialization", "killer"], ["created_at", "2016-03-18 17:29:59.157240"], ["updated_at", "2016-03-18 17:29:59.157240"]]
|
2597
|
+
[1m[36m (28.0ms)[0m [1mCOMMIT[0m
|
2598
|
+
[1m[35mBandit Load (3.3ms)[0m select * from bandits_killer
|
2599
|
+
[1m[36m (1.1ms)[0m [1mBEGIN[0m
|
2600
|
+
[1m[35mSQL (49.0ms)[0m INSERT INTO "bandits" ("specialization", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["specialization", "pol"], ["created_at", "2016-03-18 17:38:03.393164"], ["updated_at", "2016-03-18 17:38:03.393164"]]
|
2601
|
+
[1m[36m (21.3ms)[0m [1mCOMMIT[0m
|
2602
|
+
[1m[35mBandit Load (1.1ms)[0m select * from bandits_pol
|
2603
|
+
[1m[36m (23.0ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2604
|
+
WHERE table_name ='bandits'
|
2605
|
+
AND column_name = 'id';[0m
|
2606
|
+
[1m[35m (55.6ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2607
|
+
DECLARE
|
2608
|
+
colname text := 'id';
|
2609
|
+
colval text := NEW.id;
|
2610
|
+
tblname text := 'bandits_' || colval;
|
2611
|
+
BEGIN
|
2612
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2613
|
+
EXECUTE 'CREATE TABLE '
|
2614
|
+
|| tblname
|
2615
|
+
|| '(check ('
|
2616
|
+
|| quote_ident(colname)
|
2617
|
+
|| '='
|
2618
|
+
|| quote_literal(colval)
|
2619
|
+
|| ')) INHERITS ('
|
2620
|
+
|| TG_RELNAME
|
2621
|
+
|| ');';
|
2622
|
+
END IF;
|
2623
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2624
|
+
RETURN NEW;
|
2625
|
+
END;
|
2626
|
+
$$ LANGUAGE plpgsql;
|
2627
|
+
[1m[36m (15.0ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2628
|
+
CREATE TRIGGER insert_bandits_trigger
|
2629
|
+
BEFORE INSERT ON bandits
|
2630
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2631
|
+
[1m[35m (8.6ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2632
|
+
DECLARE
|
2633
|
+
row bandits%rowtype;
|
2634
|
+
BEGIN
|
2635
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2636
|
+
RETURN row;
|
2637
|
+
END;
|
2638
|
+
$$ LANGUAGE plpgsql;
|
2639
|
+
[1m[36m (11.2ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2640
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2641
|
+
AFTER INSERT ON bandits
|
2642
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2643
|
+
[1m[35m (74.9ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2644
|
+
ccu.table_name AS foreign_table_name,
|
2645
|
+
ccu.column_name AS foreign_column_name
|
2646
|
+
FROM information_schema.table_constraints AS tc
|
2647
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2648
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2649
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2650
|
+
[1m[36m (3.3ms)[0m [1mSHOW constraint_exclusion;[0m
|
2651
|
+
[1m[36m (11.1ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2652
|
+
WHERE table_name ='bandits'
|
2653
|
+
AND column_name = 'id';[0m
|
2654
|
+
[1m[35m (22.8ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2655
|
+
DECLARE
|
2656
|
+
colname text := 'id';
|
2657
|
+
colval text := NEW.id;
|
2658
|
+
tblname text := 'bandits_' || colval;
|
2659
|
+
BEGIN
|
2660
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2661
|
+
EXECUTE 'CREATE TABLE '
|
2662
|
+
|| tblname
|
2663
|
+
|| '(check ('
|
2664
|
+
|| quote_ident(colname)
|
2665
|
+
|| '='
|
2666
|
+
|| quote_literal(colval)
|
2667
|
+
|| ')) INHERITS ('
|
2668
|
+
|| TG_RELNAME
|
2669
|
+
|| ');';
|
2670
|
+
END IF;
|
2671
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2672
|
+
RETURN NEW;
|
2673
|
+
END;
|
2674
|
+
$$ LANGUAGE plpgsql;
|
2675
|
+
[1m[36m (14.7ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2676
|
+
CREATE TRIGGER insert_bandits_trigger
|
2677
|
+
BEFORE INSERT ON bandits
|
2678
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2679
|
+
[1m[35m (7.8ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2680
|
+
DECLARE
|
2681
|
+
row bandits%rowtype;
|
2682
|
+
BEGIN
|
2683
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2684
|
+
RETURN row;
|
2685
|
+
END;
|
2686
|
+
$$ LANGUAGE plpgsql;
|
2687
|
+
[1m[36m (14.8ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2688
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2689
|
+
AFTER INSERT ON bandits
|
2690
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2691
|
+
[1m[35m (26.0ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2692
|
+
ccu.table_name AS foreign_table_name,
|
2693
|
+
ccu.column_name AS foreign_column_name
|
2694
|
+
FROM information_schema.table_constraints AS tc
|
2695
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2696
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2697
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2698
|
+
[1m[36m (0.9ms)[0m [1mSHOW constraint_exclusion;[0m
|
2699
|
+
[1m[36m (9.3ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2700
|
+
WHERE table_name ='sdsd'
|
2701
|
+
AND column_name = 'sdsd';[0m
|
2702
|
+
[1m[36m (9.0ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2703
|
+
WHERE table_name ='bandits'
|
2704
|
+
AND column_name = 'id';[0m
|
2705
|
+
[1m[35m (24.2ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2706
|
+
DECLARE
|
2707
|
+
colname text := 'id';
|
2708
|
+
colval text := NEW.id;
|
2709
|
+
tblname text := 'bandits_' || colval;
|
2710
|
+
BEGIN
|
2711
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2712
|
+
EXECUTE 'CREATE TABLE '
|
2713
|
+
|| tblname
|
2714
|
+
|| '(check ('
|
2715
|
+
|| quote_ident(colname)
|
2716
|
+
|| '='
|
2717
|
+
|| quote_literal(colval)
|
2718
|
+
|| ')) INHERITS ('
|
2719
|
+
|| TG_RELNAME
|
2720
|
+
|| ');';
|
2721
|
+
END IF;
|
2722
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2723
|
+
RETURN NEW;
|
2724
|
+
END;
|
2725
|
+
$$ LANGUAGE plpgsql;
|
2726
|
+
[1m[36m (14.1ms)[0m [1mDROP TRIGGER IF EXISTS insert_bandits_trigger ON bandits;
|
2727
|
+
CREATE TRIGGER insert_bandits_trigger
|
2728
|
+
BEFORE INSERT ON bandits
|
2729
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();[0m
|
2730
|
+
[1m[35m (7.3ms)[0m CREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2731
|
+
DECLARE
|
2732
|
+
row bandits%rowtype;
|
2733
|
+
BEGIN
|
2734
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2735
|
+
RETURN row;
|
2736
|
+
END;
|
2737
|
+
$$ LANGUAGE plpgsql;
|
2738
|
+
[1m[36m (10.8ms)[0m [1mDROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2739
|
+
CREATE TRIGGER bandits_after_insert_trigger
|
2740
|
+
AFTER INSERT ON bandits
|
2741
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2742
|
+
[1m[35m (29.5ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2743
|
+
ccu.table_name AS foreign_table_name,
|
2744
|
+
ccu.column_name AS foreign_column_name
|
2745
|
+
FROM information_schema.table_constraints AS tc
|
2746
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2747
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2748
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2749
|
+
[1m[36m (0.5ms)[0m [1mSHOW constraint_exclusion;[0m
|
2750
|
+
[1m[36m (16.9ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2751
|
+
WHERE table_name ='bAND'
|
2752
|
+
AND column_name = 'id';[0m
|
2753
|
+
[1m[36m (17.3ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2754
|
+
WHERE table_name ='band'
|
2755
|
+
AND column_name = 'id';[0m
|
2756
|
+
[1m[36m (17.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2757
|
+
WHERE table_name ='ban'
|
2758
|
+
AND column_name = 'id';[0m
|
2759
|
+
[1m[36m (8.7ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2760
|
+
WHERE table_name ='bdn'
|
2761
|
+
AND column_name = 'id';[0m
|
2762
|
+
[1m[36m (8.7ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2763
|
+
WHERE table_name ='ban'
|
2764
|
+
AND column_name = 'id';[0m
|
2765
|
+
[1m[36m (19.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2766
|
+
WHERE table_name ='bandits'
|
2767
|
+
AND column_name = 'created_at';[0m
|
2768
|
+
[1m[36m (9.5ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2769
|
+
WHERE table_name ='jk'
|
2770
|
+
AND column_name = 'jk';[0m
|
2771
|
+
[1m[36m (9.4ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2772
|
+
WHERE table_name ='kl'
|
2773
|
+
AND column_name = ';l;';[0m
|
2774
|
+
[1m[36m (71.9ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
2775
|
+
[1m[35m (83.8ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
2776
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.8ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
2777
|
+
Migrating to CreateGangs (20160306173540)
|
2778
|
+
[1m[35m (0.4ms)[0m BEGIN
|
2779
|
+
[1m[36m (110.3ms)[0m [1mCREATE TABLE "gangs" ("id" serial primary key, "title" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
2780
|
+
[1m[35mSQL (2.2ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306173540"]]
|
2781
|
+
[1m[36m (10.1ms)[0m [1mCOMMIT[0m
|
2782
|
+
Migrating to CreateBandits (20160306174017)
|
2783
|
+
[1m[35m (2.9ms)[0m BEGIN
|
2784
|
+
[1m[36m (89.1ms)[0m [1mCREATE TABLE "bandits" ("id" serial primary key, "name" character varying, "specialization" character varying, "date_of_birth" date, "gang_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
2785
|
+
[1m[35m (65.5ms)[0m CREATE INDEX "index_bandits_on_gang_id" ON "bandits" ("gang_id")
|
2786
|
+
[1m[36m (11.1ms)[0m [1mALTER TABLE "bandits" ADD CONSTRAINT "fk_rails_7411a14fb1"
|
2787
|
+
FOREIGN KEY ("gang_id")
|
2788
|
+
REFERENCES "gangs" ("id")
|
2789
|
+
[0m
|
2790
|
+
[1m[35mSQL (12.4ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174017"]]
|
2791
|
+
[1m[36m (30.6ms)[0m [1mCOMMIT[0m
|
2792
|
+
Migrating to CreateCrimes (20160306174042)
|
2793
|
+
[1m[35m (4.3ms)[0m BEGIN
|
2794
|
+
[1m[36m (102.4ms)[0m [1mCREATE TABLE "crimes" ("id" serial primary key, "title" character varying, "bandit_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
2795
|
+
[1m[35m (63.4ms)[0m CREATE INDEX "index_crimes_on_bandit_id" ON "crimes" ("bandit_id")
|
2796
|
+
[1m[36m (2.3ms)[0m [1mALTER TABLE "crimes" ADD CONSTRAINT "fk_rails_ca9866c40c"
|
2797
|
+
FOREIGN KEY ("bandit_id")
|
2798
|
+
REFERENCES "bandits" ("id")
|
2799
|
+
[0m
|
2800
|
+
[1m[35mSQL (0.3ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174042"]]
|
2801
|
+
[1m[36m (21.3ms)[0m [1mCOMMIT[0m
|
2802
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.8ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
2803
|
+
[1m[36m (7.6ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
2804
|
+
FROM pg_constraint c
|
2805
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
2806
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
2807
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
2808
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
2809
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
2810
|
+
WHERE c.contype = 'f'
|
2811
|
+
AND t1.relname = 'bandits'
|
2812
|
+
AND t3.nspname = ANY (current_schemas(false))
|
2813
|
+
ORDER BY c.conname
|
2814
|
+
[0m
|
2815
|
+
[1m[35m (6.4ms)[0m SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
2816
|
+
FROM pg_constraint c
|
2817
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
2818
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
2819
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
2820
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
2821
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
2822
|
+
WHERE c.contype = 'f'
|
2823
|
+
AND t1.relname = 'crimes'
|
2824
|
+
AND t3.nspname = ANY (current_schemas(false))
|
2825
|
+
ORDER BY c.conname
|
2826
|
+
|
2827
|
+
[1m[36m (14.1ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
2828
|
+
FROM pg_constraint c
|
2829
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
2830
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
2831
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
2832
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
2833
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
2834
|
+
WHERE c.contype = 'f'
|
2835
|
+
AND t1.relname = 'gangs'
|
2836
|
+
AND t3.nspname = ANY (current_schemas(false))
|
2837
|
+
ORDER BY c.conname
|
2838
|
+
[0m
|
2839
|
+
[1m[36m (324.7ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2840
|
+
WHERE table_name ='fdfd'
|
2841
|
+
AND column_name = 'dsdsd';[0m
|
2842
|
+
[1m[36m (63.0ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
2843
|
+
[1m[35m (76.0ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
2844
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.5ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
2845
|
+
Migrating to CreateGangs (20160306173540)
|
2846
|
+
[1m[35m (0.4ms)[0m BEGIN
|
2847
|
+
[1m[36m (112.5ms)[0m [1mCREATE TABLE "gangs" ("id" serial primary key, "title" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
2848
|
+
[1m[35mSQL (3.3ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306173540"]]
|
2849
|
+
[1m[36m (3.9ms)[0m [1mCOMMIT[0m
|
2850
|
+
Migrating to CreateBandits (20160306174017)
|
2851
|
+
[1m[35m (0.4ms)[0m BEGIN
|
2852
|
+
[1m[36m (99.6ms)[0m [1mCREATE TABLE "bandits" ("id" serial primary key, "name" character varying, "specialization" character varying, "date_of_birth" date, "gang_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
2853
|
+
[1m[35m (67.4ms)[0m CREATE INDEX "index_bandits_on_gang_id" ON "bandits" ("gang_id")
|
2854
|
+
[1m[36m (7.3ms)[0m [1mALTER TABLE "bandits" ADD CONSTRAINT "fk_rails_7411a14fb1"
|
2855
|
+
FOREIGN KEY ("gang_id")
|
2856
|
+
REFERENCES "gangs" ("id")
|
2857
|
+
[0m
|
2858
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174017"]]
|
2859
|
+
[1m[36m (5.0ms)[0m [1mCOMMIT[0m
|
2860
|
+
Migrating to CreateCrimes (20160306174042)
|
2861
|
+
[1m[35m (5.6ms)[0m BEGIN
|
2862
|
+
[1m[36m (117.5ms)[0m [1mCREATE TABLE "crimes" ("id" serial primary key, "title" character varying, "bandit_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
2863
|
+
[1m[35m (61.8ms)[0m CREATE INDEX "index_crimes_on_bandit_id" ON "crimes" ("bandit_id")
|
2864
|
+
[1m[36m (4.5ms)[0m [1mALTER TABLE "crimes" ADD CONSTRAINT "fk_rails_ca9866c40c"
|
2865
|
+
FOREIGN KEY ("bandit_id")
|
2866
|
+
REFERENCES "bandits" ("id")
|
2867
|
+
[0m
|
2868
|
+
[1m[35mSQL (0.6ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174042"]]
|
2869
|
+
[1m[36m (9.6ms)[0m [1mCOMMIT[0m
|
2870
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.9ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
2871
|
+
[1m[36m (5.3ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
2872
|
+
FROM pg_constraint c
|
2873
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
2874
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
2875
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
2876
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
2877
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
2878
|
+
WHERE c.contype = 'f'
|
2879
|
+
AND t1.relname = 'bandits'
|
2880
|
+
AND t3.nspname = ANY (current_schemas(false))
|
2881
|
+
ORDER BY c.conname
|
2882
|
+
[0m
|
2883
|
+
[1m[35m (5.1ms)[0m SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
2884
|
+
FROM pg_constraint c
|
2885
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
2886
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
2887
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
2888
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
2889
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
2890
|
+
WHERE c.contype = 'f'
|
2891
|
+
AND t1.relname = 'crimes'
|
2892
|
+
AND t3.nspname = ANY (current_schemas(false))
|
2893
|
+
ORDER BY c.conname
|
2894
|
+
|
2895
|
+
[1m[36m (4.9ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
2896
|
+
FROM pg_constraint c
|
2897
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
2898
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
2899
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
2900
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
2901
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
2902
|
+
WHERE c.contype = 'f'
|
2903
|
+
AND t1.relname = 'gangs'
|
2904
|
+
AND t3.nspname = ANY (current_schemas(false))
|
2905
|
+
ORDER BY c.conname
|
2906
|
+
[0m
|
2907
|
+
[1m[36m (9.5ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2908
|
+
WHERE table_name ='bandits'
|
2909
|
+
AND column_name = 'id';[0m
|
2910
|
+
[1m[35m (36.0ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2911
|
+
DECLARE
|
2912
|
+
colname text := 'id';
|
2913
|
+
colval text := NEW.id;
|
2914
|
+
tblname text := 'bandits_' || colval;
|
2915
|
+
BEGIN
|
2916
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2917
|
+
EXECUTE 'CREATE TABLE '
|
2918
|
+
|| tblname
|
2919
|
+
|| '(check ('
|
2920
|
+
|| quote_ident(colname)
|
2921
|
+
|| '='
|
2922
|
+
|| quote_literal(colval)
|
2923
|
+
|| ')) INHERITS ('
|
2924
|
+
|| TG_RELNAME
|
2925
|
+
|| ');';
|
2926
|
+
END IF;
|
2927
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2928
|
+
RETURN NEW;
|
2929
|
+
END;
|
2930
|
+
$$ LANGUAGE plpgsql;
|
2931
|
+
[1m[36m (0.6ms)[0m [1mDROP TRIGGER IF EXISTS bandits_before_insert_trigger ON bandits;[0m
|
2932
|
+
[1m[35m (13.0ms)[0m CREATE TRIGGER bandits_before_insert_trigger
|
2933
|
+
before INSERT ON bandits
|
2934
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
2935
|
+
[1m[36m (7.5ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2936
|
+
DECLARE
|
2937
|
+
row bandits%rowtype;
|
2938
|
+
BEGIN
|
2939
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2940
|
+
RETURN row;
|
2941
|
+
END;
|
2942
|
+
$$ LANGUAGE plpgsql;[0m
|
2943
|
+
[1m[35m (0.4ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2944
|
+
[1m[36m (10.7ms)[0m [1mCREATE TRIGGER bandits_after_insert_trigger
|
2945
|
+
after INSERT ON bandits
|
2946
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
2947
|
+
[1m[35m (30.4ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
2948
|
+
ccu.table_name AS foreign_table_name,
|
2949
|
+
ccu.column_name AS foreign_column_name
|
2950
|
+
FROM information_schema.table_constraints AS tc
|
2951
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
2952
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
2953
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
2954
|
+
[1m[36m (12.2ms)[0m [1mALTER TABLE crimes DROP CONSTRAINT fk_rails_ca9866c40c;[0m
|
2955
|
+
[1m[35m (8.5ms)[0m SHOW constraint_exclusion;
|
2956
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
2957
|
+
[1m[35mSQL (62.3ms)[0m INSERT INTO "bandits" ("specialization", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id" [["specialization", "pol"], ["created_at", "2016-03-20 07:48:16.365726"], ["updated_at", "2016-03-20 07:48:16.365726"]]
|
2958
|
+
[1m[36m (17.5ms)[0m [1mCOMMIT[0m
|
2959
|
+
[1m[35m (0.7ms)[0m BEGIN
|
2960
|
+
[1m[36mSQL (86.9ms)[0m [1mINSERT INTO "bandits" ("specialization", "created_at", "updated_at") VALUES ($1, $2, $3) RETURNING "id"[0m [["specialization", "polit"], ["created_at", "2016-03-20 07:48:26.107704"], ["updated_at", "2016-03-20 07:48:26.107704"]]
|
2961
|
+
[1m[35m (15.0ms)[0m COMMIT
|
2962
|
+
[1m[36m (870.2ms)[0m [1mSELECT data_type FROM information_schema.columns
|
2963
|
+
WHERE table_name ='bandits'
|
2964
|
+
AND column_name = 'specialization';[0m
|
2965
|
+
[1m[35m (953.9ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
2966
|
+
DECLARE
|
2967
|
+
colname text := 'specialization';
|
2968
|
+
colval text := NEW.specialization;
|
2969
|
+
tblname text := 'bandits_' || colval;
|
2970
|
+
BEGIN
|
2971
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
2972
|
+
EXECUTE 'CREATE TABLE '
|
2973
|
+
|| tblname
|
2974
|
+
|| '(check ('
|
2975
|
+
|| quote_ident(colname)
|
2976
|
+
|| '='
|
2977
|
+
|| quote_literal(colval)
|
2978
|
+
|| ')) INHERITS ('
|
2979
|
+
|| TG_RELNAME
|
2980
|
+
|| ');';
|
2981
|
+
END IF;
|
2982
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
2983
|
+
RETURN NEW;
|
2984
|
+
END;
|
2985
|
+
$$ LANGUAGE plpgsql;
|
2986
|
+
[1m[36m (616.8ms)[0m [1mDROP TRIGGER IF EXISTS bandits_before_insert_trigger ON bandits;[0m
|
2987
|
+
[1m[35m (34.9ms)[0m CREATE TRIGGER bandits_before_insert_trigger
|
2988
|
+
before INSERT ON bandits
|
2989
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
2990
|
+
[1m[36m (52.2ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
2991
|
+
DECLARE
|
2992
|
+
row bandits%rowtype;
|
2993
|
+
BEGIN
|
2994
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
2995
|
+
RETURN row;
|
2996
|
+
END;
|
2997
|
+
$$ LANGUAGE plpgsql;[0m
|
2998
|
+
[1m[35m (8.4ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
2999
|
+
[1m[36m (10.3ms)[0m [1mCREATE TRIGGER bandits_after_insert_trigger
|
3000
|
+
after INSERT ON bandits
|
3001
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
3002
|
+
[1m[35m (647.8ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
3003
|
+
ccu.table_name AS foreign_table_name,
|
3004
|
+
ccu.column_name AS foreign_column_name
|
3005
|
+
FROM information_schema.table_constraints AS tc
|
3006
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
3007
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
3008
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
3009
|
+
[1m[36m (0.6ms)[0m [1mSHOW constraint_exclusion;[0m
|
3010
|
+
[1m[36mBandit Load (129.0ms)[0m [1mSELECT "bandits".* FROM "bandits"[0m
|
3011
|
+
[1m[35m (4.9ms)[0m BEGIN
|
3012
|
+
[1m[36mSQL (288.3ms)[0m [1mINSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["name", "Yo"], ["specialization", "puk"], ["created_at", "2016-03-21 20:05:09.309204"], ["updated_at", "2016-03-21 20:05:09.309204"]]
|
3013
|
+
[1m[35m (38.0ms)[0m COMMIT
|
3014
|
+
[1m[36mBandit Load (13.8ms)[0m [1mSELECT "bandits".* FROM "bandits" ORDER BY "bandits"."id" DESC LIMIT 1[0m
|
3015
|
+
[1m[35m (0.2ms)[0m BEGIN
|
3016
|
+
[1m[36mSQL (53.6ms)[0m [1mINSERT INTO "crimes" ("title", "bandit_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["title", "bla"], ["bandit_id", 3], ["created_at", "2016-03-21 20:05:51.390198"], ["updated_at", "2016-03-21 20:05:51.390198"]]
|
3017
|
+
[1m[35m (16.3ms)[0m COMMIT
|
3018
|
+
[1m[36mCrime Load (1.8ms)[0m [1mSELECT "crimes".* FROM "crimes" ORDER BY "crimes"."id" ASC LIMIT 1[0m
|
3019
|
+
[1m[35mCrime Load (1.6ms)[0m SELECT "crimes".* FROM "crimes" ORDER BY "crimes"."id" ASC LIMIT 1
|
3020
|
+
[1m[36mBandit Load (2.1ms)[0m [1mSELECT "bandits".* FROM "bandits" WHERE "bandits"."id" = $1 LIMIT 1[0m [["id", 3]]
|
3021
|
+
[1m[35mCrime Load (1.2ms)[0m SELECT "crimes".* FROM "crimes" ORDER BY "crimes"."id" ASC LIMIT 1
|
3022
|
+
[1m[36mBandit Load (0.8ms)[0m [1mSELECT "bandits".* FROM "bandits" WHERE "bandits"."id" = $1 LIMIT 1[0m [["id", 3]]
|
3023
|
+
[1m[35m (0.9ms)[0m BEGIN
|
3024
|
+
[1m[36mSQL (1.0ms)[0m [1mINSERT INTO "crimes" ("title", "bandit_id", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["title", "dsdsds"], ["bandit_id", 3], ["created_at", "2016-03-21 20:07:39.673947"], ["updated_at", "2016-03-21 20:07:39.673947"]]
|
3025
|
+
[1m[35m (16.6ms)[0m COMMIT
|
3026
|
+
[1m[36mBandit Load (4.2ms)[0m [1mSELECT "bandits".* FROM "bandits" ORDER BY "bandits"."id" ASC LIMIT 1[0m
|
3027
|
+
[1m[35mCrime Load (0.8ms)[0m SELECT "crimes".* FROM "crimes" WHERE "crimes"."bandit_id" = $1 [["bandit_id", 1]]
|
3028
|
+
[1m[36mBandit Load (3.3ms)[0m [1mSELECT "bandits".* FROM "bandits" ORDER BY "bandits"."id" DESC LIMIT 1[0m
|
3029
|
+
[1m[35mCrime Load (1.0ms)[0m SELECT "crimes".* FROM "crimes" WHERE "crimes"."bandit_id" = $1 [["bandit_id", 3]]
|
3030
|
+
[1m[36m (73.4ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
3031
|
+
[1m[35m (81.9ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
3032
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.5ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
3033
|
+
Migrating to CreateGangs (20160306173540)
|
3034
|
+
[1m[35m (0.5ms)[0m BEGIN
|
3035
|
+
[1m[36m (143.1ms)[0m [1mCREATE TABLE "gangs" ("id" serial primary key, "title" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
3036
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306173540"]]
|
3037
|
+
[1m[36m (23.6ms)[0m [1mCOMMIT[0m
|
3038
|
+
Migrating to CreateBandits (20160306174017)
|
3039
|
+
[1m[35m (0.3ms)[0m BEGIN
|
3040
|
+
[1m[36m (95.4ms)[0m [1mCREATE TABLE "bandits" ("id" serial primary key, "name" character varying, "specialization" character varying, "date_of_birth" date, "gang_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
3041
|
+
[1m[35m (48.0ms)[0m CREATE INDEX "index_bandits_on_gang_id" ON "bandits" ("gang_id")
|
3042
|
+
[1m[36m (6.8ms)[0m [1mALTER TABLE "bandits" ADD CONSTRAINT "fk_rails_7411a14fb1"
|
3043
|
+
FOREIGN KEY ("gang_id")
|
3044
|
+
REFERENCES "gangs" ("id")
|
3045
|
+
[0m
|
3046
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174017"]]
|
3047
|
+
[1m[36m (16.1ms)[0m [1mCOMMIT[0m
|
3048
|
+
Migrating to CreateCrimes (20160306174042)
|
3049
|
+
[1m[35m (0.6ms)[0m BEGIN
|
3050
|
+
[1m[36m (117.6ms)[0m [1mCREATE TABLE "crimes" ("id" serial primary key, "title" character varying, "bandit_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
3051
|
+
[1m[35m (50.9ms)[0m CREATE INDEX "index_crimes_on_bandit_id" ON "crimes" ("bandit_id")
|
3052
|
+
[1m[36m (4.5ms)[0m [1mALTER TABLE "crimes" ADD CONSTRAINT "fk_rails_ca9866c40c"
|
3053
|
+
FOREIGN KEY ("bandit_id")
|
3054
|
+
REFERENCES "bandits" ("id")
|
3055
|
+
[0m
|
3056
|
+
[1m[35mSQL (0.6ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174042"]]
|
3057
|
+
[1m[36m (20.5ms)[0m [1mCOMMIT[0m
|
3058
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.5ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
3059
|
+
[1m[36m (6.5ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
3060
|
+
FROM pg_constraint c
|
3061
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
3062
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
3063
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
3064
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
3065
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
3066
|
+
WHERE c.contype = 'f'
|
3067
|
+
AND t1.relname = 'bandits'
|
3068
|
+
AND t3.nspname = ANY (current_schemas(false))
|
3069
|
+
ORDER BY c.conname
|
3070
|
+
[0m
|
3071
|
+
[1m[35m (6.1ms)[0m SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
3072
|
+
FROM pg_constraint c
|
3073
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
3074
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
3075
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
3076
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
3077
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
3078
|
+
WHERE c.contype = 'f'
|
3079
|
+
AND t1.relname = 'crimes'
|
3080
|
+
AND t3.nspname = ANY (current_schemas(false))
|
3081
|
+
ORDER BY c.conname
|
3082
|
+
|
3083
|
+
[1m[36m (6.7ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
3084
|
+
FROM pg_constraint c
|
3085
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
3086
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
3087
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
3088
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
3089
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
3090
|
+
WHERE c.contype = 'f'
|
3091
|
+
AND t1.relname = 'gangs'
|
3092
|
+
AND t3.nspname = ANY (current_schemas(false))
|
3093
|
+
ORDER BY c.conname
|
3094
|
+
[0m
|
3095
|
+
[1m[36m (10.2ms)[0m [1mSELECT data_type FROM information_schema.columns
|
3096
|
+
WHERE table_name = 'bandits' AND column_name = 'id';[0m
|
3097
|
+
[1m[35m (19.0ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
3098
|
+
DECLARE
|
3099
|
+
colname text := 'id';
|
3100
|
+
colval integer := NEW.id;
|
3101
|
+
threshold integer := '100';
|
3102
|
+
step integer := ROUND(colval / threshold);
|
3103
|
+
tblname text := 'bandits_' || step;
|
3104
|
+
BEGIN
|
3105
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
3106
|
+
EXECUTE 'CREATE TABLE '
|
3107
|
+
|| tblname
|
3108
|
+
|| '(check (ROUND('
|
3109
|
+
|| quote_ident(colname)
|
3110
|
+
|| '/'
|
3111
|
+
|| threshold
|
3112
|
+
|| ')='
|
3113
|
+
|| step
|
3114
|
+
|| ')) INHERITS ('
|
3115
|
+
|| TG_RELNAME
|
3116
|
+
|| ');';
|
3117
|
+
END IF;
|
3118
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
3119
|
+
RETURN NEW;
|
3120
|
+
END;
|
3121
|
+
$$ LANGUAGE plpgsql;
|
3122
|
+
[1m[36m (0.6ms)[0m [1mDROP TRIGGER IF EXISTS bandits_before_insert_trigger ON bandits;[0m
|
3123
|
+
[1m[35m (13.5ms)[0m CREATE TRIGGER bandits_before_insert_trigger
|
3124
|
+
before INSERT ON bandits
|
3125
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
3126
|
+
[1m[36m (7.1ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
3127
|
+
DECLARE
|
3128
|
+
row bandits%rowtype;
|
3129
|
+
BEGIN
|
3130
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
3131
|
+
RETURN row;
|
3132
|
+
END;
|
3133
|
+
$$ LANGUAGE plpgsql;[0m
|
3134
|
+
[1m[35m (0.4ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
3135
|
+
[1m[36m (12.8ms)[0m [1mCREATE TRIGGER bandits_after_insert_trigger
|
3136
|
+
after INSERT ON bandits
|
3137
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
3138
|
+
[1m[35m (26.2ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
3139
|
+
ccu.table_name AS foreign_table_name,
|
3140
|
+
ccu.column_name AS foreign_column_name
|
3141
|
+
FROM information_schema.table_constraints AS tc
|
3142
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
3143
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
3144
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
3145
|
+
[1m[36m (13.9ms)[0m [1mALTER TABLE crimes DROP CONSTRAINT fk_rails_ca9866c40c;[0m
|
3146
|
+
[1m[35m (0.5ms)[0m SHOW constraint_exclusion;
|
3147
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
3148
|
+
[1m[35mSQL (90.3ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Yo"], ["specialization", "puk"], ["created_at", "2016-03-23 17:58:26.254810"], ["updated_at", "2016-03-23 17:58:26.254810"]]
|
3149
|
+
[1m[36m (16.5ms)[0m [1mCOMMIT[0m
|
3150
|
+
[1m[36m (10.8ms)[0m [1mSELECT data_type FROM information_schema.columns
|
3151
|
+
WHERE table_name = '1 = 1' AND column_name = 'id';[0m
|
3152
|
+
[1m[36m (9.3ms)[0m [1mSELECT data_type FROM information_schema.columns
|
3153
|
+
WHERE table_name = 'true' AND column_name = 'id';[0m
|
3154
|
+
[1m[36m (224.2ms)[0m [1mSELECT data_type FROM information_schema.columns
|
3155
|
+
WHERE table_name = 'bandits' AND column_name = 'id';[0m
|
3156
|
+
[1m[35m (216.3ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
3157
|
+
DECLARE
|
3158
|
+
colname text := 'id';
|
3159
|
+
colval integer := NEW.id;
|
3160
|
+
threshold integer := '40';
|
3161
|
+
step integer := ROUND(colval / threshold);
|
3162
|
+
tblname text := 'bandits_' || step;
|
3163
|
+
BEGIN
|
3164
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
3165
|
+
EXECUTE 'CREATE TABLE '
|
3166
|
+
|| tblname
|
3167
|
+
|| '(check (ROUND('
|
3168
|
+
|| quote_ident(colname)
|
3169
|
+
|| '/'
|
3170
|
+
|| threshold
|
3171
|
+
|| ')='
|
3172
|
+
|| step
|
3173
|
+
|| ')) INHERITS ('
|
3174
|
+
|| TG_RELNAME
|
3175
|
+
|| ');';
|
3176
|
+
EXECUTE 'CREATE INDEX '
|
3177
|
+
|| quote_ident(tblname || '_idx')
|
3178
|
+
|| ' ON '
|
3179
|
+
|| quote_ident(tblname)
|
3180
|
+
|| ' (id, '
|
3181
|
+
|| quote_ident(colname)
|
3182
|
+
|| ');';
|
3183
|
+
END IF;
|
3184
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
3185
|
+
RETURN NEW;
|
3186
|
+
END;
|
3187
|
+
$$ LANGUAGE plpgsql;
|
3188
|
+
[1m[36m (131.0ms)[0m [1mDROP TRIGGER IF EXISTS bandits_before_insert_trigger ON bandits;[0m
|
3189
|
+
[1m[35m (54.9ms)[0m CREATE TRIGGER bandits_before_insert_trigger
|
3190
|
+
before INSERT ON bandits
|
3191
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
3192
|
+
[1m[36m (9.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
3193
|
+
DECLARE
|
3194
|
+
row bandits%rowtype;
|
3195
|
+
BEGIN
|
3196
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
3197
|
+
RETURN row;
|
3198
|
+
END;
|
3199
|
+
$$ LANGUAGE plpgsql;[0m
|
3200
|
+
[1m[35m (5.9ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
3201
|
+
[1m[36m (13.9ms)[0m [1mCREATE TRIGGER bandits_after_insert_trigger
|
3202
|
+
after INSERT ON bandits
|
3203
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
3204
|
+
[1m[35m (237.0ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
3205
|
+
ccu.table_name AS foreign_table_name,
|
3206
|
+
ccu.column_name AS foreign_column_name
|
3207
|
+
FROM information_schema.table_constraints AS tc
|
3208
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
3209
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
3210
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
3211
|
+
[1m[36m (0.9ms)[0m [1mSHOW constraint_exclusion;[0m
|
3212
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
3213
|
+
[1m[35mSQL (68.8ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Yo"], ["specialization", "puk"], ["created_at", "2016-03-24 17:40:39.130570"], ["updated_at", "2016-03-24 17:40:39.130570"]]
|
3214
|
+
[1m[36m (20.1ms)[0m [1mCOMMIT[0m
|
3215
|
+
[1m[36m (137.4ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
3216
|
+
[1m[35m (67.7ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
3217
|
+
[1m[36mActiveRecord::SchemaMigration Load (1.8ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
3218
|
+
Migrating to CreateGangs (20160306173540)
|
3219
|
+
[1m[35m (0.4ms)[0m BEGIN
|
3220
|
+
[1m[36m (143.9ms)[0m [1mCREATE TABLE "gangs" ("id" serial primary key, "title" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
3221
|
+
[1m[35mSQL (22.3ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306173540"]]
|
3222
|
+
[1m[36m (14.8ms)[0m [1mCOMMIT[0m
|
3223
|
+
Migrating to CreateBandits (20160306174017)
|
3224
|
+
[1m[35m (0.3ms)[0m BEGIN
|
3225
|
+
[1m[36m (101.0ms)[0m [1mCREATE TABLE "bandits" ("id" serial primary key, "name" character varying, "specialization" character varying, "date_of_birth" date, "gang_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
3226
|
+
[1m[35m (48.6ms)[0m CREATE INDEX "index_bandits_on_gang_id" ON "bandits" ("gang_id")
|
3227
|
+
[1m[36m (8.0ms)[0m [1mALTER TABLE "bandits" ADD CONSTRAINT "fk_rails_7411a14fb1"
|
3228
|
+
FOREIGN KEY ("gang_id")
|
3229
|
+
REFERENCES "gangs" ("id")
|
3230
|
+
[0m
|
3231
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174017"]]
|
3232
|
+
[1m[36m (20.1ms)[0m [1mCOMMIT[0m
|
3233
|
+
Migrating to CreateCrimes (20160306174042)
|
3234
|
+
[1m[35m (0.9ms)[0m BEGIN
|
3235
|
+
[1m[36m (105.0ms)[0m [1mCREATE TABLE "crimes" ("id" serial primary key, "title" character varying, "bandit_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
3236
|
+
[1m[35m (63.5ms)[0m CREATE INDEX "index_crimes_on_bandit_id" ON "crimes" ("bandit_id")
|
3237
|
+
[1m[36m (4.6ms)[0m [1mALTER TABLE "crimes" ADD CONSTRAINT "fk_rails_ca9866c40c"
|
3238
|
+
FOREIGN KEY ("bandit_id")
|
3239
|
+
REFERENCES "bandits" ("id")
|
3240
|
+
[0m
|
3241
|
+
[1m[35mSQL (0.7ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174042"]]
|
3242
|
+
[1m[36m (19.1ms)[0m [1mCOMMIT[0m
|
3243
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.5ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
3244
|
+
[1m[36m (6.5ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
3245
|
+
FROM pg_constraint c
|
3246
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
3247
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
3248
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
3249
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
3250
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
3251
|
+
WHERE c.contype = 'f'
|
3252
|
+
AND t1.relname = 'bandits'
|
3253
|
+
AND t3.nspname = ANY (current_schemas(false))
|
3254
|
+
ORDER BY c.conname
|
3255
|
+
[0m
|
3256
|
+
[1m[35m (6.1ms)[0m SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
3257
|
+
FROM pg_constraint c
|
3258
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
3259
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
3260
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
3261
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
3262
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
3263
|
+
WHERE c.contype = 'f'
|
3264
|
+
AND t1.relname = 'crimes'
|
3265
|
+
AND t3.nspname = ANY (current_schemas(false))
|
3266
|
+
ORDER BY c.conname
|
3267
|
+
|
3268
|
+
[1m[36m (5.9ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
3269
|
+
FROM pg_constraint c
|
3270
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
3271
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
3272
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
3273
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
3274
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
3275
|
+
WHERE c.contype = 'f'
|
3276
|
+
AND t1.relname = 'gangs'
|
3277
|
+
AND t3.nspname = ANY (current_schemas(false))
|
3278
|
+
ORDER BY c.conname
|
3279
|
+
[0m
|
3280
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
3281
|
+
[1m[35mSQL (1.8ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Yo"], ["specialization", "puk"], ["created_at", "2016-03-24 17:44:05.066919"], ["updated_at", "2016-03-24 17:44:05.066919"]]
|
3282
|
+
[1m[36m (29.7ms)[0m [1mCOMMIT[0m
|
3283
|
+
[1m[36m (109.3ms)[0m [1mSELECT data_type FROM information_schema.columns
|
3284
|
+
WHERE table_name = 'bandits' AND column_name = 'id';[0m
|
3285
|
+
[1m[35m (162.8ms)[0m CREATE OR REPLACE FUNCTION bandits_insert_master() RETURNS TRIGGER AS $$
|
3286
|
+
DECLARE
|
3287
|
+
colname text := 'id';
|
3288
|
+
colval integer := NEW.id;
|
3289
|
+
threshold integer := '5';
|
3290
|
+
step integer := ROUND(colval / threshold);
|
3291
|
+
tblname text := 'bandits_' || step;
|
3292
|
+
BEGIN
|
3293
|
+
IF NOT EXISTS(SELECT relname FROM pg_class WHERE relname=tblname) THEN
|
3294
|
+
EXECUTE 'CREATE TABLE '
|
3295
|
+
|| tblname
|
3296
|
+
|| '(check (ROUND('
|
3297
|
+
|| quote_ident(colname)
|
3298
|
+
|| '/'
|
3299
|
+
|| threshold
|
3300
|
+
|| ')='
|
3301
|
+
|| step
|
3302
|
+
|| ')) INHERITS ('
|
3303
|
+
|| TG_RELNAME
|
3304
|
+
|| ');';
|
3305
|
+
EXECUTE 'CREATE INDEX '
|
3306
|
+
|| quote_ident(tblname || '_idx')
|
3307
|
+
|| ' ON '
|
3308
|
+
|| quote_ident(tblname)
|
3309
|
+
|| ' (id, '
|
3310
|
+
|| quote_ident(colname)
|
3311
|
+
|| ');';
|
3312
|
+
END IF;
|
3313
|
+
EXECUTE 'INSERT INTO ' || tblname || ' SELECT ($1).*' USING NEW;
|
3314
|
+
RETURN NEW;
|
3315
|
+
END;
|
3316
|
+
$$ LANGUAGE plpgsql;
|
3317
|
+
[1m[36m (9.8ms)[0m [1mDROP TRIGGER IF EXISTS bandits_before_insert_trigger ON bandits;[0m
|
3318
|
+
[1m[35m (17.2ms)[0m CREATE TRIGGER bandits_before_insert_trigger
|
3319
|
+
before INSERT ON bandits
|
3320
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_insert_master();
|
3321
|
+
[1m[36m (10.3ms)[0m [1mCREATE OR REPLACE FUNCTION bandits_delete_master() RETURNS TRIGGER AS $$
|
3322
|
+
DECLARE
|
3323
|
+
row bandits%rowtype;
|
3324
|
+
BEGIN
|
3325
|
+
DELETE FROM ONLY bandits WHERE id = NEW.id RETURNING * INTO row;
|
3326
|
+
RETURN row;
|
3327
|
+
END;
|
3328
|
+
$$ LANGUAGE plpgsql;[0m
|
3329
|
+
[1m[35m (0.6ms)[0m DROP TRIGGER IF EXISTS bandits_after_insert_trigger ON bandits;
|
3330
|
+
[1m[36m (19.9ms)[0m [1mCREATE TRIGGER bandits_after_insert_trigger
|
3331
|
+
after INSERT ON bandits
|
3332
|
+
FOR EACH ROW EXECUTE PROCEDURE bandits_delete_master();[0m
|
3333
|
+
[1m[35m (108.9ms)[0m SELECT tc.constraint_name, tc.table_name, kcu.column_name,
|
3334
|
+
ccu.table_name AS foreign_table_name,
|
3335
|
+
ccu.column_name AS foreign_column_name
|
3336
|
+
FROM information_schema.table_constraints AS tc
|
3337
|
+
JOIN information_schema.key_column_usage AS kcu ON tc.constraint_name = kcu.constraint_name
|
3338
|
+
JOIN information_schema.constraint_column_usage AS ccu ON ccu.constraint_name = tc.constraint_name
|
3339
|
+
WHERE constraint_type = 'FOREIGN KEY' AND ccu.table_name='bandits';
|
3340
|
+
[1m[36m (15.3ms)[0m [1mALTER TABLE crimes DROP CONSTRAINT fk_rails_ca9866c40c;[0m
|
3341
|
+
[1m[35m (0.5ms)[0m SHOW constraint_exclusion;
|
3342
|
+
[1m[36m (0.2ms)[0m [1mBEGIN[0m
|
3343
|
+
[1m[35mSQL (187.7ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Yo"], ["specialization", "puk"], ["created_at", "2016-03-24 17:45:50.965645"], ["updated_at", "2016-03-24 17:45:50.965645"]]
|
3344
|
+
[1m[36m (23.8ms)[0m [1mCOMMIT[0m
|
3345
|
+
[1m[35m (2.2ms)[0m BEGIN
|
3346
|
+
[1m[36mSQL (12.7ms)[0m [1mINSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["name", "Yo"], ["specialization", "puk"], ["created_at", "2016-03-24 17:45:54.248710"], ["updated_at", "2016-03-24 17:45:54.248710"]]
|
3347
|
+
[1m[35m (23.4ms)[0m COMMIT
|
3348
|
+
[1m[36m (2.5ms)[0m [1mBEGIN[0m
|
3349
|
+
[1m[35mSQL (14.5ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Yo"], ["specialization", "puk"], ["created_at", "2016-03-24 17:45:55.183196"], ["updated_at", "2016-03-24 17:45:55.183196"]]
|
3350
|
+
[1m[36m (18.3ms)[0m [1mCOMMIT[0m
|
3351
|
+
[1m[35m (2.1ms)[0m BEGIN
|
3352
|
+
[1m[36mSQL (126.0ms)[0m [1mINSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"[0m [["name", "Yo"], ["specialization", "puk"], ["created_at", "2016-03-24 17:45:56.083555"], ["updated_at", "2016-03-24 17:45:56.083555"]]
|
3353
|
+
[1m[35m (22.7ms)[0m COMMIT
|
3354
|
+
[1m[36m (1.1ms)[0m [1mBEGIN[0m
|
3355
|
+
[1m[35mSQL (8.4ms)[0m INSERT INTO "bandits" ("name", "specialization", "created_at", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["name", "Yo"], ["specialization", "puk"], ["created_at", "2016-03-24 17:45:57.166553"], ["updated_at", "2016-03-24 17:45:57.166553"]]
|
3356
|
+
[1m[36m (24.0ms)[0m [1mCOMMIT[0m
|
3357
|
+
[1m[36m (364.6ms)[0m [1mCREATE TABLE "schema_migrations" ("version" character varying NOT NULL) [0m
|
3358
|
+
[1m[35m (244.6ms)[0m CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version")
|
3359
|
+
[1m[36mActiveRecord::SchemaMigration Load (2.3ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
3360
|
+
Migrating to CreateGangs (20160306173540)
|
3361
|
+
[1m[35m (0.2ms)[0m BEGIN
|
3362
|
+
[1m[36m (909.6ms)[0m [1mCREATE TABLE "gangs" ("id" serial primary key, "title" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
3363
|
+
[1m[35mSQL (40.3ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306173540"]]
|
3364
|
+
[1m[36m (114.2ms)[0m [1mCOMMIT[0m
|
3365
|
+
Migrating to CreateBandits (20160306174017)
|
3366
|
+
[1m[35m (0.3ms)[0m BEGIN
|
3367
|
+
[1m[36m (149.4ms)[0m [1mCREATE TABLE "bandits" ("id" serial primary key, "name" character varying, "specialization" character varying, "date_of_birth" date, "gang_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
3368
|
+
[1m[35m (100.8ms)[0m CREATE INDEX "index_bandits_on_gang_id" ON "bandits" ("gang_id")
|
3369
|
+
[1m[36m (115.4ms)[0m [1mALTER TABLE "bandits" ADD CONSTRAINT "fk_rails_7411a14fb1"
|
3370
|
+
FOREIGN KEY ("gang_id")
|
3371
|
+
REFERENCES "gangs" ("id")
|
3372
|
+
[0m
|
3373
|
+
[1m[35mSQL (44.0ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174017"]]
|
3374
|
+
[1m[36m (81.1ms)[0m [1mCOMMIT[0m
|
3375
|
+
Migrating to CreateCrimes (20160306174042)
|
3376
|
+
[1m[35m (0.3ms)[0m BEGIN
|
3377
|
+
[1m[36m (92.4ms)[0m [1mCREATE TABLE "crimes" ("id" serial primary key, "title" character varying, "bandit_id" integer, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) [0m
|
3378
|
+
[1m[35m (66.3ms)[0m CREATE INDEX "index_crimes_on_bandit_id" ON "crimes" ("bandit_id")
|
3379
|
+
[1m[36m (3.2ms)[0m [1mALTER TABLE "crimes" ADD CONSTRAINT "fk_rails_ca9866c40c"
|
3380
|
+
FOREIGN KEY ("bandit_id")
|
3381
|
+
REFERENCES "bandits" ("id")
|
3382
|
+
[0m
|
3383
|
+
[1m[35mSQL (0.6ms)[0m INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20160306174042"]]
|
3384
|
+
[1m[36m (30.2ms)[0m [1mCOMMIT[0m
|
3385
|
+
[1m[35mActiveRecord::SchemaMigration Load (0.5ms)[0m SELECT "schema_migrations".* FROM "schema_migrations"
|
3386
|
+
[1m[36m (44.2ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
3387
|
+
FROM pg_constraint c
|
3388
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
3389
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
3390
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
3391
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
3392
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
3393
|
+
WHERE c.contype = 'f'
|
3394
|
+
AND t1.relname = 'bandits'
|
3395
|
+
AND t3.nspname = ANY (current_schemas(false))
|
3396
|
+
ORDER BY c.conname
|
3397
|
+
[0m
|
3398
|
+
[1m[35m (17.1ms)[0m SELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
3399
|
+
FROM pg_constraint c
|
3400
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
3401
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
3402
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
3403
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
3404
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
3405
|
+
WHERE c.contype = 'f'
|
3406
|
+
AND t1.relname = 'crimes'
|
3407
|
+
AND t3.nspname = ANY (current_schemas(false))
|
3408
|
+
ORDER BY c.conname
|
3409
|
+
|
3410
|
+
[1m[36m (9.9ms)[0m [1mSELECT t2.oid::regclass::text AS to_table, a1.attname AS column, a2.attname AS primary_key, c.conname AS name, c.confupdtype AS on_update, c.confdeltype AS on_delete
|
3411
|
+
FROM pg_constraint c
|
3412
|
+
JOIN pg_class t1 ON c.conrelid = t1.oid
|
3413
|
+
JOIN pg_class t2 ON c.confrelid = t2.oid
|
3414
|
+
JOIN pg_attribute a1 ON a1.attnum = c.conkey[1] AND a1.attrelid = t1.oid
|
3415
|
+
JOIN pg_attribute a2 ON a2.attnum = c.confkey[1] AND a2.attrelid = t2.oid
|
3416
|
+
JOIN pg_namespace t3 ON c.connamespace = t3.oid
|
3417
|
+
WHERE c.contype = 'f'
|
3418
|
+
AND t1.relname = 'gangs'
|
3419
|
+
AND t3.nspname = ANY (current_schemas(false))
|
3420
|
+
ORDER BY c.conname
|
3421
|
+
[0m
|