Sticky Pistons are similar to the Piston; the difference is that it can pull blocks as well as push them. When extending, sticky pistons act exactly as regular pistons, pushing up to 12 blocks. When retracting, sticky pistons will pull along the block immediately in front of it. Obsidian, bedrock, Note Blocks, tile entities, Enchantment Table, and extended pistons cannot be pulled, just as they cannot be pushed. It is possible for the block "stuck" to a sticky piston to be pushed aside by another piston, and sticky pistons do not hold up sand and gravel against gravity; the stickiness is only in effect during the retraction of the piston.
Functionality Pistons always face the player when placed. Pistons are redstone triggered. When powered, their wooden surface extends outwards by 1 block, pushing up to a maximum of 12 blocks. When going back to the unpowered state, the regular piston does not pull any block back (Blocks affected by gravity still fall back down). Its wooden surface can also push players, mobs and other entities on the floor by 1 block if they are in the way. However, if there is no space for the player/mob/entity to be pushed, the extended piston head will just pass through them without harm(unless the block the player is being pushed towards is a staircase/slab). The piston can still push a mob or player off a one block wide walkway, which can be coupled with a Pressure Plate for a fairly effective trap. The extended piston head is considered solid and transparent (just like Glass). If a piston head extends into a player/mob this way, they will not suffocate, and the player/mob can move out of it but not back into it. Similarly, if a block pushed by a piston is pushed into a player/mob, the player/mob will get pushed if there is space. If there is no space, the block will start to occupy the same space as the player/mob and cause suffocation if the block is opaque. When blocks are pushed by a piston, they are momentarily non-solid and cause any players/items on the moving block to fall through the moving block. Pistons can be used to toggle fluid flows like a flood gate by extending into or retracting from the space where the fluid would flow through. Pistons can push Minecarts and Boats. Note that if the minecart is on a rail, the rail will also get pushed if there is space. If there is no space, or it is pushed over an edge, the rail will turn into a drop.
Pushing Blocks Some blocks cannot be pushed by Pistons and the piston head will not extend: Obsidian, Bedrock, End Portals and Nether Portals to avoid abuse Blocks with extra data (tile entities) attached - Note Blocks, Chests, Furnaces, Jukeboxes, Dispensers, Monster Spawners, Brewing Stands, Enchantment Tables and End Portal Frame blocks. Pistons will not push blocks into The Void or the top of the map. Extended pistons (both sticky and normal) Cactus, Pumpkins, Jack-O-Lanterns, Sugar Cane, and Dragon Eggs are turned into drops when pushed. (If trying to create extendable/retractable lighting, you can use Glowstone Block instead. See also: Redstone Lamp.) Melons will turn into slices if pushed by a piston. Cobwebs will turn into string if pushed by a piston. Pistons cannot push water or lava, only obstruct it. A piston head extending into a water or lava source block will destroy the source block. Pistons cannot push most blocks that are "attached to a block" such as levers, torches, redstone, signs, etc. They will be detached and drop as an item. Exceptions include: Trapdoors, as long as their hinged side remains attached to a solid block in their new position. Rails (and Powered Rail, Detector Rail) as long as they remain on top of a solid block in their new position. Rails will re-orient themselves after being pushed just as they do when placed manually. Blocks that are attached to pushed blocks will be broken off unless the block which is now under/behind them is also acceptable; for example, torches can be placed on a "self-repairing" cobblestone structure. Pistons cannot push a chain of blocks more than 12 blocks long. They will simply not extend.