Created
September 24, 2014 17:49
-
-
Save gilfernandes/3bb207d0db7f5437763b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE OR REPLACE FUNCTION partitioned.transaction_insert_trigger() | |
RETURNS trigger AS | |
$BODY$ | |
DECLARE | |
bucket integer; | |
BEGIN | |
bucket := partitioned.calcbucket(NEW.customer_id, 50); | |
INSERT INTO partitioned.bucket_debug VALUES (bucket, NEW.customer_id); | |
IF (bucket = 0) THEN | |
INSERT INTO partitioned.transaction_bucket_0 VALUES (NEW.*); | |
ELSIF (bucket = 1) THEN | |
INSERT INTO partitioned.transaction_bucket_1 VALUES (NEW.*); | |
ELSIF (bucket = 2) THEN | |
INSERT INTO partitioned.transaction_bucket_2 VALUES (NEW.*); | |
ELSIF (bucket = 3) THEN | |
INSERT INTO partitioned.transaction_bucket_3 VALUES (NEW.*); | |
ELSIF (bucket = 4) THEN | |
INSERT INTO partitioned.transaction_bucket_4 VALUES (NEW.*); | |
ELSIF (bucket = 5) THEN | |
INSERT INTO partitioned.transaction_bucket_5 VALUES (NEW.*); | |
ELSIF (bucket = 6) THEN | |
INSERT INTO partitioned.transaction_bucket_6 VALUES (NEW.*); | |
ELSIF (bucket = 7) THEN | |
INSERT INTO partitioned.transaction_bucket_7 VALUES (NEW.*); | |
ELSIF (bucket = 8) THEN | |
INSERT INTO partitioned.transaction_bucket_8 VALUES (NEW.*); | |
ELSIF (bucket = 9) THEN | |
INSERT INTO partitioned.transaction_bucket_9 VALUES (NEW.*); | |
ELSIF (bucket = 10) THEN | |
INSERT INTO partitioned.transaction_bucket_10 VALUES (NEW.*); | |
ELSIF (bucket = 11) THEN | |
INSERT INTO partitioned.transaction_bucket_11 VALUES (NEW.*); | |
ELSIF (bucket = 12) THEN | |
INSERT INTO partitioned.transaction_bucket_12 VALUES (NEW.*); | |
ELSIF (bucket = 13) THEN | |
INSERT INTO partitioned.transaction_bucket_13 VALUES (NEW.*); | |
ELSIF (bucket = 14) THEN | |
INSERT INTO partitioned.transaction_bucket_14 VALUES (NEW.*); | |
ELSIF (bucket = 15) THEN | |
INSERT INTO partitioned.transaction_bucket_15 VALUES (NEW.*); | |
ELSIF (bucket = 16) THEN | |
INSERT INTO partitioned.transaction_bucket_16 VALUES (NEW.*); | |
ELSIF (bucket = 17) THEN | |
INSERT INTO partitioned.transaction_bucket_17 VALUES (NEW.*); | |
ELSIF (bucket = 18) THEN | |
INSERT INTO partitioned.transaction_bucket_18 VALUES (NEW.*); | |
ELSIF (bucket = 19) THEN | |
INSERT INTO partitioned.transaction_bucket_19 VALUES (NEW.*); | |
ELSIF (bucket = 20) THEN | |
INSERT INTO partitioned.transaction_bucket_20 VALUES (NEW.*); | |
ELSIF (bucket = 21) THEN | |
INSERT INTO partitioned.transaction_bucket_21 VALUES (NEW.*); | |
ELSIF (bucket = 22) THEN | |
INSERT INTO partitioned.transaction_bucket_22 VALUES (NEW.*); | |
ELSIF (bucket = 23) THEN | |
INSERT INTO partitioned.transaction_bucket_23 VALUES (NEW.*); | |
ELSIF (bucket = 24) THEN | |
INSERT INTO partitioned.transaction_bucket_24 VALUES (NEW.*); | |
ELSIF (bucket = 25) THEN | |
INSERT INTO partitioned.transaction_bucket_25 VALUES (NEW.*); | |
ELSIF (bucket = 26) THEN | |
INSERT INTO partitioned.transaction_bucket_26 VALUES (NEW.*); | |
ELSIF (bucket = 27) THEN | |
INSERT INTO partitioned.transaction_bucket_27 VALUES (NEW.*); | |
ELSIF (bucket = 28) THEN | |
INSERT INTO partitioned.transaction_bucket_28 VALUES (NEW.*); | |
ELSIF (bucket = 29) THEN | |
INSERT INTO partitioned.transaction_bucket_29 VALUES (NEW.*); | |
ELSIF (bucket = 30) THEN | |
INSERT INTO partitioned.transaction_bucket_30 VALUES (NEW.*); | |
ELSIF (bucket = 31) THEN | |
INSERT INTO partitioned.transaction_bucket_31 VALUES (NEW.*); | |
ELSIF (bucket = 32) THEN | |
INSERT INTO partitioned.transaction_bucket_32 VALUES (NEW.*); | |
ELSIF (bucket = 33) THEN | |
INSERT INTO partitioned.transaction_bucket_33 VALUES (NEW.*); | |
ELSIF (bucket = 34) THEN | |
INSERT INTO partitioned.transaction_bucket_34 VALUES (NEW.*); | |
ELSIF (bucket = 35) THEN | |
INSERT INTO partitioned.transaction_bucket_35 VALUES (NEW.*); | |
ELSIF (bucket = 36) THEN | |
INSERT INTO partitioned.transaction_bucket_36 VALUES (NEW.*); | |
ELSIF (bucket = 37) THEN | |
INSERT INTO partitioned.transaction_bucket_37 VALUES (NEW.*); | |
ELSIF (bucket = 38) THEN | |
INSERT INTO partitioned.transaction_bucket_38 VALUES (NEW.*); | |
ELSIF (bucket = 39) THEN | |
INSERT INTO partitioned.transaction_bucket_39 VALUES (NEW.*); | |
ELSIF (bucket = 40) THEN | |
INSERT INTO partitioned.transaction_bucket_40 VALUES (NEW.*); | |
ELSIF (bucket = 41) THEN | |
INSERT INTO partitioned.transaction_bucket_41 VALUES (NEW.*); | |
ELSIF (bucket = 42) THEN | |
INSERT INTO partitioned.transaction_bucket_42 VALUES (NEW.*); | |
ELSIF (bucket = 43) THEN | |
INSERT INTO partitioned.transaction_bucket_43 VALUES (NEW.*); | |
ELSIF (bucket = 44) THEN | |
INSERT INTO partitioned.transaction_bucket_44 VALUES (NEW.*); | |
ELSIF (bucket = 45) THEN | |
INSERT INTO partitioned.transaction_bucket_45 VALUES (NEW.*); | |
ELSIF (bucket = 46) THEN | |
INSERT INTO partitioned.transaction_bucket_46 VALUES (NEW.*); | |
ELSIF (bucket = 47) THEN | |
INSERT INTO partitioned.transaction_bucket_47 VALUES (NEW.*); | |
ELSIF (bucket = 48) THEN | |
INSERT INTO partitioned.transaction_bucket_48 VALUES (NEW.*); | |
ELSIF (bucket = 49) THEN | |
INSERT INTO partitioned.transaction_bucket_49 VALUES (NEW.*); | |
ELSE | |
RAISE EXCEPTION 'Value out of range: '; | |
END IF; | |
RETURN NULL; | |
END; | |
$BODY$ | |
LANGUAGE plpgsql VOLATILE | |
COST 100; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment