Hmm... yeah, sorry, that's bonkers.  The problem I was trying to solve is that the no-inserts rule wasn't being applied to the mid-level parent tables in a multi-level partition setup (if you run the company_id_and_created_at.rb example on the master branch, you'll see that the rules won't exist on the company_id parent partitions).  

This was due to PartitionManager calling SqlAdapter.add_parent_table_rules with a set of partition_key_values that represents the table that needs the rule.  The behavior of SqlAdapter.add_parent_table_rules, on the other hand, was to add a rule to the *parent* of the table represented by the partition_key_values.  They weren't talking the same language, and the result was that rules were missing.

My kludgy fix was to send an extra nil to Reader.parent_table_name to simulate a child table.  It would be better to call Reader.table_name if there are any partition_key_values present.  If there aren't any values, we can interpret that as a request to create the rule on the topmost parent table (in the example, the employees table).