From: Mattias Jonsson Date: July 9 2010 1:00pm Subject: bzr commit into mysql-5.1-bugteam branch (mattias.jonsson:3476) List-Archive: http://lists.mysql.com/commits/113254 Message-Id: <201007091301.o69D1Icr023405@rcsinet13.oracle.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============7639002082969050528==" --===============7639002082969050528== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///Users/mattiasj/mysql-bzr/topush-51-bugteam/ based on revid:mattias.jonsson@stripped 3476 Mattias Jonsson 2010-07-09 [merge] merge modified: sql/ha_partition.h sql/handler.h === modified file 'sql/ha_partition.h' --- a/sql/ha_partition.h 2010-07-08 23:09:31 +0000 +++ b/sql/ha_partition.h 2010-07-09 13:00:33 +0000 @@ -53,8 +53,7 @@ typedef struct st_ha_data_partition HA_CAN_FULLTEXT | \ HA_DUPLICATE_POS | \ HA_CAN_SQL_HANDLER | \ - HA_CAN_INSERT_DELAYED | \ - HA_PRIMARY_KEY_REQUIRED_FOR_POSITION) + HA_CAN_INSERT_DELAYED) class ha_partition :public handler { private: @@ -775,9 +774,6 @@ public: HA_PRIMARY_KEY_REQUIRED_FOR_POSITION: Does the storage engine need a PK for position? - Used with hidden primary key in InnoDB. - Hidden primary keys cannot be supported by partitioning, since the - partitioning expressions columns must be a part of the primary key. (InnoDB) HA_FILE_BASED is always set for partition handler since we use a === modified file 'sql/handler.h' --- a/sql/handler.h 2010-06-10 20:45:22 +0000 +++ b/sql/handler.h 2010-07-09 13:00:33 +0000 @@ -93,7 +93,10 @@ #define HA_PRIMARY_KEY_IN_READ_INDEX (1 << 15) /* If HA_PRIMARY_KEY_REQUIRED_FOR_POSITION is set, it means that to position() - uses a primary key. Without primary key, we can't call position(). + uses a primary key given by the record argument. + Without primary key, we can't call position(). + If not set, the position is returned as the current rows position + regardless of what argument is given. */ #define HA_PRIMARY_KEY_REQUIRED_FOR_POSITION (1 << 16) #define HA_CAN_RTREEKEYS (1 << 17) @@ -1446,10 +1449,9 @@ public: virtual int rnd_next(uchar *buf)=0; virtual int rnd_pos(uchar * buf, uchar *pos)=0; /** - One has to use this method when to find - random position by record as the plain - position() call doesn't work for some - handlers for random position. + This function only works for handlers having + HA_PRIMARY_KEY_REQUIRED_FOR_POSITION set. + It will return the row with the PK given in the record argument. */ virtual int rnd_pos_by_record(uchar *record) { @@ -1467,6 +1469,12 @@ public: { return HA_ERR_WRONG_COMMAND; } virtual ha_rows records_in_range(uint inx, key_range *min_key, key_range *max_key) { return (ha_rows) 10; } + /* + If HA_PRIMARY_KEY_REQUIRED_FOR_POSITION is set, then it sets ref + (reference to the row, aka position, with the primary key given in + the record). + Otherwise it set ref to the current row. + */ virtual void position(const uchar *record)=0; virtual int info(uint)=0; // see my_base.h for full description virtual void get_dynamic_partition_info(PARTITION_INFO *stat_info, --===============7639002082969050528== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/mattias.jonsson@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: mattias.jonsson@stripped\ # fgr7hggrrebf6qkc # target_branch: file:///Users/mattiasj/mysql-bzr/topush-51-bugteam/ # testament_sha1: fa496db866470ab6cea0aa596f396b3b19be8a41 # timestamp: 2010-07-09 15:01:02 +0200 # source_branch: file:///Users/mattiasj/mysql-bzr/b49161-51-bugteam/ # base_revision_id: mattias.jonsson@stripped\ # xgan11um91pgpgmq # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWb+JbaoABOlfgEAQXPf/939/ /qC////wYAnu+haA6HEArk5aBSigdGjQGEkkVPwjTJiT1PJplT1NpNpPTUAA2pp6m0g9NqgJShTw aap5Tep6kZpMhpiGE09NJoBoZDJpkOaZGQyYIaMJgjTRoxA0yZGAAIJQEImmjQk/Umj0INAAAAAa AA5pkZDJghowmCNNGjEDTJkYAAgkiCNACZAgGhNU9kQyENGjED1DTRwvo37lsnuHqJngeqr8PBhv 0bi8znd98+MvjgexsPSPiXkVr9UZm+zCblQry0dNHwZA09SmdbMpQmJtpaSlfnpzQiQDDCb6Tc7Q 4EK2ZwZmYBhtv0SyypJQWpsUeVfoGy59mT0SVdXaxoiVe5rltDIQo+A2vhx17zjrzRGe/is4yu9Y VrSKTSGvhD8RPRXn/oynnai8+GC3jNet9Je5FeflvDGNilMJC7C6aR9+caVSG2rP8WLhLVKFlJ1N QBb9M2N0NrWYvyqLuyjXCcba55St7OXXz9xkZh3B1l/gzd/dsfYBKTgjbfaMbPj1R+vbBlrxWZyz JWtcQjiklFYhdAZUaIOcrAa8RcYGN6KjDE1DDmnro3tuZ9J1dKZdlhqmySEx5DMhhN0BL4ckTJUq Hdzv72a/C96JHRgOpkR5nqocetHXKYDRQyEmVGElYiAmrH65xmRQ4EETex2KmJqIFTXEx0CuRafR olo6FJki21kSXtACtVAMWksiwsJnzViE36rKy/NKdVcDJhTGJ4QKveZ1pAZ5ujL+HAPC0s6y/ESj vRXmJb1QsOSr6MqLIxwsoX7sigEkRw1a6Zd7ARugE2nELWLY4gjI2qJySOF93IO0MQfR1nQ2sQWk IRTGoTWoRN5Ac5REUJ7KtQmzM+DrXW4V4wkp6xOBIqssU25nWjjeMRLUyE2ZzlSyQTMKy22fEhtZ RBPMsktCZnJFkbkL4o0D9UYV4F1EFscANGRfUjchT0lRy4hEdSt07KAXca8GKjW2F5LPZDbERrOC xjiXhqljHCpawbgkTFSukyTScqoG2guORi5dTXDakM8CTSZnHD1Sy8llZrI2w1C0HHFG3mYkbSeB 6FuIOlmhFrbWd1ezIZJeTBUcobE95Q1rsTd33UQqiVhfv7AxLOcbtTHUiVTI6npa8opuqySNVdre xiZ8cByW2Z0RTS+ylt73oWzSdlUxA2kVzuOWkCujGjF9uWd5Q5lBEsMdLaowkUtvNSpLUmWdXblC 6YE0LcEjO1sdq3jREyaBYTzyIoq7xzuCZUs7eGxYTs3F2VLIZjGJdnQqOWx3wAnIbvA03VIVDbWt kaU3GBJHKxjQ5QJcSYVkCg+/lVoYpFZkUINTG4mq78r3oKT8ZiW9khj1XH1jMrWRbXLZkPKGNyJy yKjMvYxITJPWzYDIZMZM86BqjK5YoSjVR0Q0khAkjASOVDOKFKqOgeNByX2ivO40LWGTBzNGGQVG 0KTMvICWEe7gjh+BSKYZkyZk2+7BzMh/Dij5sjx7kQo31rc0CH+SMERIgglc45Qol4oynJDuNIwR /xFaMLbbRFqKkOiaIxsRaiH5OipFLrP1Q9866VIsQ+W5F2qJokh0bHWdQOhdgH5/0iBolHgTBdZS qkxjxh7TBwTOqMhUx6EmAjVIb2oyUj8igyihfiiCPsSJpAOHeiwhQF+c0DAcnHtKZoisgwjjkJXL 8XEVq8/CTFHgCUYJiXMzcgXn3DglPBD20WlRfohHgu7Sfv0ounGhev3ygfZulFwZS4/QYifUkDIk vdPdrraMdyItlWeLBcdpEgaanJC5mud54xLJrdZAZIXggC83G8K4GApx8RkSbSUdQjbuJTrZhyZr 1KTnIliuA16W/hh4YgSLyoRf1eBrQzYuKu08m5z0oLgsEHB7EKdh/W7n5Mag3O1nAhQ8XADI887b yJGMfRsm3Eupp8DiTQplKBcFO7cOOyfAVyDhnC4qPLIDu1dftvmb6X98lxUPy9DsTTw1FdfM8Vaa TUFTjbkKMWaYp1OTeI5RwrPN4eHHMgDDBETuBNMR4gVdkDbpX11QKQ6EZBYxFDkGEViN4YTG+8bX rEdnL0R+aFwjUEzr5nyIDzl51IaHpRkjLyIsFIc4rA2AYB6NgMd6DoEvEh2MpHqhh/REt7LqHZve sXQqeSPICqgZLQGTAV2gXK4sXIMMEUR0D3hwYR5uTiPAF7GqP7OOh8/p3/fSNiFRQBZ3D3JvkBU5 E+6JFohwdjKozOEl2DrCg3ArXEBrFoSVaNuiLFNGiXwQdudueWWPLuXQ5lC/qZDDIGAY3VmK1Xnr iIinD/tAoI+JuC2IaWbIXaCWiK/sXYvP2R/kCQZh2oLkWyQ/czoHAwEQHLUJg/FslTl6h3tkkJhE YchD+BDSSGbrPeYHfFHFJKKm5uimRf7j0TDoGHTD+A0qkcaJooiDnruC0PUNqFYrwsR2rp5o/8nM LWYb5WkGZhRwuk0QE3oyIOmmXEApwgtaJWbIDoCzSJAU7SA0VC4JhJJKAgmyBkHYi36jyD8GOyCI 7BytiEkJi+H7tO5CC+8ZJDAkw/mPU37H2glRY48UhOgovWIvGImDdotvHTa5EnNBLNUqdAwMBrAc nHAhE9IdYWr3r1ImRjKIg02A6uLexZBJGYMn+4Dih0FgfP7UX2eLiLUxoBEEHEZSOIGSPkxVAiJQ KmMz4DimSTcsFmhWpbg1663+YQ50oWowAqLvFiwRdYiDjooYMOs8SmThnw3SQ3MwIjOkh4bhzHgx ZBezAZg0DNUqEZhELVeyG70TEl8Q+IxY44/oi4JqBiLYSWrkEHomI66Mftm8dMZ0nIk7R9pEkzeN ZKAdAKEXN454tvOIH1l4RICPsZflk8ugTI1iS2J6hUfCpxmESESFLFBkKxuiNXqYCsoJKJ8EaoOf bvR6fyZTPZclzRmotsbG3u4FmfuRaHmtl4Iq23hEVZAR0+tGTqtWUCXvxZuaGGZHBEua3Ix5r3ot RiIZFaPki0iMtukIDMNNYjUhZIEWq1GxUV1Uo9qLlAiUtR6bv+LuSKcKEhfxLbVA --===============7639002082969050528==--