SELECT count(DISTINCT t3.product_id) FROM customers AS t1 JOIN customer_orders AS t2 ON t1.customer_id  =  t2.customer_id JOIN order_items AS t3 ON t2.order_id  =  t3.order_id WHERE t1.customer_name  =  "Rodrick Heaney"
SELECT count(DISTINCT t3.product_id) FROM customers AS t1 JOIN customer_orders AS t2 ON t1.customer_id  =  t2.customer_id JOIN order_items AS t3 ON t2.order_id  =  t3.order_id WHERE t1.customer_name  =  "Rodrick Heaney" <table_name> : Customers col : customer_id | payment_method | customer_name | date_became_customer | other_customer_details row 1 : 1 | Cash | Dr. Julia Wuckert MD | 2018-03-01 23:20:10 |  row 2 : 2 | Cheque | Tillman Ernser | 2018-02-28 11:37:44 |  row 3 : 3 | Credit Card | Rodrick Heaney | 2018-03-09 17:41:58 |  row 4 : 4 | Credit Card | Prof. Alexzander Hamill | 2018-02-24 00:20:18 | VIP row 5 : 5 | Cheque | Prof. Reyes Berge II | 2018-03-07 18:05:11 |  row 6 : 6 | Cash | Maudie Kertzmann | 2018-02-26 11:57:47 |  row 7 : 7 | Credit Card | Mozell Morissette | 2018-02-25 13:15:04 | VIP row 8 : 8 | Credit Card | Eunice Morar | 2018-03-21 01:01:04 |  row 9 : 9 | Cheque | Devin Mills | 2018-03-05 16:52:51 |  row 10 : 10 | Cash | Kitty Padberg III | 2018-03-22 18:09:09 |  row 11 : 11 | Cheque | Salvatore Tillman | 2018-03-04 00:17:48 |  row 12 : 12 | Cheque | Clifford Pagac | 2018-02-24 10:24:23 |  row 13 : 13 | Credit Card | Miss Aliyah Witting | 2018-03-05 07:19:45 |  row 14 : 14 | Cheque | Alexane Kilback | 2018-03-08 01:17:31 |  row 15 : 15 | Cash | Prof. Ibrahim Bashirian | 2018-03-15 02:54:27 | <table_name> : Customer_Orders col : order_id | customer_id | order_status | order_date | order_details row 1 : 1 | 15 | Cancelled | 2018-03-21 11:20:46 |  row 2 : 2 | 3 | Cancelled | 2018-03-05 06:35:33 |  row 3 : 3 | 5 | Delivered | 2018-03-04 07:16:22 | Second time row 4 : 4 | 12 | Cancelled | 2018-02-28 15:46:06 |  row 5 : 5 | 12 | Delivered | 2018-03-08 15:30:24 |  row 6 : 6 | 5 | Cancelled | 2018-03-10 06:12:51 |  row 7 : 7 | 10 | Cancelled | 2018-03-23 04:39:50 | Second time row 8 : 8 | 3 | Cancelled | 2018-03-17 02:51:37 |  row 9 : 9 | 8 | Cancelled | 2018-03-23 06:25:41 |  row 10 : 10 | 12 | Cancelled | 2018-03-17 07:13:53 |  row 11 : 11 | 8 | Cancelled | 2018-03-19 18:05:50 | Second time row 12 : 12 | 10 | Delivered | 2018-03-16 03:16:57 | Second time row 13 : 13 | 4 | Delivered | 2018-03-22 14:57:30 |  row 14 : 14 | 11 | Cancelled | 2018-02-24 13:18:49 | Second time row 15 : 15 | 10 | Delivered | 2018-03-06 12:31:35 | <table_name> : Order_Items col : order_id | product_id | order_quantity row 1 : 14 | 2 | 5 row 2 : 5 | 2 | 9 row 3 : 14 | 3 | 2 row 4 : 2 | 2 | 9 row 5 : 13 | 1 | 9 row 6 : 10 | 1 | 5 row 7 : 10 | 3 | 6 row 8 : 7 | 2 | 9 row 9 : 14 | 3 | 8 row 10 : 10 | 2 | 5 row 11 : 10 | 2 | 9 row 12 : 11 | 2 | 1 row 13 : 10 | 3 | 6 row 14 : 8 | 1 | 7 row 15 : 8 | 2 | 5
col : count(DISTINCT t3.product_id) row 1 : 2