{"id":334,"date":"2014-02-05T14:54:27","date_gmt":"2014-02-05T14:54:27","guid":{"rendered":"http:\/\/it.tuxie.eu\/?p=334"},"modified":"2014-02-05T19:13:20","modified_gmt":"2014-02-05T19:13:20","slug":"how-postgresql-stores-data","status":"publish","type":"post","link":"http:\/\/it.tuxie.eu\/?p=334","title":{"rendered":"How PostgreSQL stores data"},"content":{"rendered":"<p>4th part (<a href=\"http:\/\/it.tuxie.eu\/?p=254\">Oracle<\/a>, <a href=\"http:\/\/it.tuxie.eu\/?p=291\">DB2<\/a>, <a href=\"http:\/\/it.tuxie.eu\/?p=316\">MySQL<\/a>) of my series &#8222;How xxx stores data&#8220; with an idea of insider (system administrator) who wants to be rich (selling valid credit card numbers) \ud83d\ude42 PostgreSQL is excellent product. Let\u00b4s see if they are thinking about security on physical layer \ud83d\ude09<\/p>\n<p><!--more--><\/p>\n<p>I have a table public.acc_test containing these records:<\/p>\n<p><img alt=\"\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOgAAAF9CAIAAACBF7NrAAAgAElEQVR4nO2dX4gk13XGizzkxXlKIhIwJMEPDrGNHIgY3HKQITbkwRiUOCACAaUVZrElIyQLHMt6kOPEeMA7i1CwnY2SEAtHgWTHOIlmEj34NdhSwINl2NG+GNJgJGyZTbedXZGdqTzcrqr75zvnnltVt+v2zPlo7NHtqnNv3f72dnXVr7+ubqpUW6jK+++\/VwWa5IVR8QLGPXul0kf7MMY9UxUmNa4adyuVbNynn36Qejz44Acm99lmjPvXv\/trz334V8zj7z76dvP46h\/9snl87U\/uMo9JXtELoj7GrQldHONe\/sNf\/+GVn3nz2Z\/98XNv+\/Fzb1v+w8+vrv3ST\/\/t7be++Y5b33zHW\/\/5G\/\/3yrvVuFklMq69wBjjPvy5a96jn3FPr1Wzu6uTl7mWAo2rK+7kEhnXXmDkK+7+3ZWn2WMjGPf0WjWzau4+k\/CvYizjPvfUe7+3PPvuzdPv3jx9\/uoj5g\/v7+eeeq+31+nJvjXy3cPTU\/\/Z2f6J2zhcdtnTw13T8bhd9BjJcA1dcaOnCrx7ehq32cCYmPJuVuN+9+bp67fOXr919vzVR8wf3t\/YuLaHMtg0VNvp6cn+rJrtn0zj2rNJjGsvMKnnuJ57Th7r1pz9a+tnd+\/2W05edlbW\/WtkwfY\/\/covd0v+7DH\/2eHGff7qIy9+5VHzeP7qI+EjYtzTw91q98WT\/dlsf3+3qpq\/r5\/sz2a7uzOzJq+XaLNGWuv1bP\/k9NTe987J\/my92Wnzb8Lp1HWttfZ3poa7Q51ag2yHZ9Vcv5nYnVy\/43Zpv\/msj3p9LIfr4XTbeqXMBEqN2y4w8By3x4p7+kxV3b92p3HSyWNVdXd1\/Vo1u7u6\/u1qt6oOXwYV\/P98udvSrkx13T47xLiXn7jnxa88Wr\/19fqtry\/f+PyLX3n0zdtnb94++6u\/\/OTrt87M35efuIcxrjHS9ZP9mf3Cr1tm+yenp4e7VfuHu1CdHu5Wu4en1r5to\/2H1enMce16\/1N7SNTupHGbgqeHu1W1++KdF3ftf2Dr4a17Odxt7Gj6Mvv4R23\/y3GGdz0olWDcdiEZuOI6Z6iNTe33\/ReNcd0T2cqyJmVcr\/J6zXaL288OMe43nv14fetqfetq\/b9X61tXl298\/hvPfvwbz36s+V\/zx8fR6+0sms4a3K24zlPue72\/SrWGbl9v83++yfY797un2s0iR+x+Zq12s\/2T8F+g+Yd1+T\/cA2msbJ\/Kh0cUHjUcXlhKatzLT9zz\/Z\/Wb95er7gPPvgB6sEb115fT1uDUsYl7AUX4OtBZdu4Yb9DjPtPX\/zjevXUq\/\/+0ReefNerR79frz7TPX5i\/niq\/slT9eoz\/\/zFuW9cb+0UG7ddieGLbXS4W+0edsuV14VZtuAwmN2hJMY97J61TgDa1Z03LhqeXSrZuG\/ePtu\/\/KT5w\/v78hP3wBfeN27zt31i0LXc3xjx29Uu8anLKfjyerOwcuvXw5fxs72N+7XPPVDffOCFJ9\/5B+\/7zRc+\/c4ffe\/3\/vuVD7\/20r3f+up7jvZ+9YXHf+G5h36uvvlAffOBr\/35A2MaNzzNCKtZ66LXRffpzHqn9rcMdo8b93C3mu1fR6cKu\/snZ2dnp94\/ndNT+zQaGDcYHiwlMu7Tn3jfn33+s\/zj6U+8L2rcs1eqw\/ub97r7g1MCtEyGb+7e5bD2k5ZX2WxvGmeP4Wf7Gfdvn\/xI\/cPfevVf3v3Cp9\/x6r++q\/7RPebx2kv3vvbSvf\/4F79Tf\/8D3\/rqe\/7myY8wr3eqcU+aBaeqqtnuLlxx201Jk7UnzsFJC7U7aVz3TMNtbN3Z9WB2NE2z\/RPrSXTa450UrU8VulJS437qY+9\/\/dbZ7Ttnt++c\/enTe+aP23fOPv3ZL9x66475+1Mfe7\/QCtv1gOe4X378g\/Ubv1i\/cVf9+l31G3e99tK9X3r8g19+\/EMPP3Tflx7\/kPnj4YfuizpgXA28xCbffcQLW5LPglAi4z780H2tcR\/9zJXWuPbfDz903+Qm25hxz87Onnn4\/fUPqvoH1Wsv3fvMw789+BUcQeHnqky7DzeuteDGT6mhpMaVPCY32SaNe3Z2dnl3xzx6v36q3lKssb9xVRNKjavG3UqpcdW4W6kq\/IpV\/V+VPtpHz++pqTJremfoQx89HtOPQB\/66PGYfgT60EePx\/Qj0Ic+ejzW\/\/e5LzyjD31s0aMz7qo8LRaLrausyqTFYmFft1XjqrZDaty8lVWZpMbNW1mVSWrcvJVVmaTGzVtZlUlq3LyVVZmkxs1bWZVJaty8lVWZpMbNW1mVSdtt3OO9nara2dkx37Pb2Ttemvbl8d66zWpMqtwUX9doG5fLg3nTOp\/PTfGwcayBqShtt3FXq9XBvKrmB6vVankwX\/+xPJg3tlge7+1U84NlxCKw8vLgwOx4vLezs3dsGk25pvK6F9g4ysBUlM6BcXe6ZW9nb7VaLQ\/mrc9Wq9Xx3o5xVWrlbnGsKlNweby3Mz\/wNoONYw1MRUmNiyvbK2JbUI1bjs6jcZs\/jPZ2+pwq2HY0b\/\/N3925qXnjpxpHGZiK0nYbt3k3nx+0H4\/mByv0Lp9aeWVOUk2FnR3Tx8r5dLXuCzaONTAVpe02bvmVVZmkxs1bWZVJaty8lVWZpMbNW1mVSWrcvJVVmaTGzVtZlUlq3LyVVZmkxs1bWZVJaty8lVWZRBp3oVKVrW1acalfsRyofJVVmeS9ZGpc1XboAhr36FJVVdWlI3oWblyZuRuYXaqqml25YW\/jt8JGdhhVNbviPdHUaAuAATv78\/10BdsK7eG4zURHaEhA1LE3nUV7l3ZklNe4BuQ7HgneG8W4V2bVpaP6yowx7tGl2RV7A7OLeab12Y0rs3B2YSPU0aV1TW+XKzP\/RYMDPrrUvORtIUJd\/W7Lo0vtv5YbXWHYERxSpCO3sR1n8yzuXd6RUUbjrhG+wozbzBFpXDOZ4etX17U96YON22xov3hda2TAdiHeuHbJsMiNoMlvoIfkCR67d2zhLvZyL3dtnX3FNV\/X2iLj3rgym10JN2ifbFvtd0a+Eavb1D79uHTpkv++DgdsVYj30624wYqG1lenhRkSeUDWlu4bF9eXvCMjNa4zC+0\/e7g4heej653AVDeN9utp2fTGlUvtKeyRc\/aHzwDiKy7RkX2CPvPWxHC9DToCQyI7AhPCGdftnTl2KDWuMwvOa2LZ1KxWwmpMI3r26FLz59El226OIZhqfEfclujdOTQuNSRJR9ypglsutSM1LpiF2l8q4Gd66yR1\/ZLARqzOrfaf1l5WazhgqyPr8yKv8BwU+gOsi8SQXOFj795YrLcY3Lu0o7UunHHd97n1BPlXFewV139nbOYUnaTiRijropD9KnUFrA\/70t6R7A39EbgtuCM0pHhP8QnBn9VEHdV1vYmrClVVNd80LMG4kllQla8LeAMiPguq8qXGBbOgKl9qXDALqvKlxgWzoCpfpHGzEJQq1XjCxp16eQVa6IqraqTGBbOgKl8X0LgArvUqezxujDQN2yT3YMEwasDOUh2FnCungDDGHVntpi+OnZUdET5Meurit1SMchnXDjAcK5ZwFONCuHbh3TlzeVwI7EEilkJahcNA7CzuCHGujOgjcoGWgIgl2VnhEcFGZuq8LRllM+7BfJ3LaeXHl2BcS92rYlcOedwIZRvATHLqxRsGz866LzPHuXoKjwh3xP4biPnWHSgYEmrEHFj8iOoNnCosG15heKlxjWu\/El1lxOOSlC1BxCYZ12N8MTsbdMRzrn4H6IjCjngiVn5Q0OJ+Iw0TC\/+F5DfueJzNiMb14Nq2MsPjrp8P55pfcVl6NWB8aXa2plbc5m+iI+KIQEccEUsh9PEjIhupfoSwW17jjniesBrPuCFc21ameNxWEvRWuDgNYXzlpwryI+KIWBmKC49Ifpj8lp4yGndc165GxBoDS4SVHWfw6G3wYUL44Yz5kG6dVeOOGM6V7hG\/LztfXCaIWIlv4RFFUGb3Y5zsAslaWa8qjPwbdCMYl4Br\/asK3vokJk0ppFU4DMzODgR\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\/oo0irviAADACopD7il+kmdkGgMMKMsxnW\/t1MWqwDh2raylLIlG+u6FqXJuiPycDAx0iroyIpOPDpqtpUbF0xIShAvGCfRSMw8qXzGXZ8nlEaHQbi2rdyPsuUDbqPqj8mmxtamnypEJ6T\/OAUxwIzyG7csHhfDtWFlOWUbNgrshJlUMdIq78gGiLs\/YZatPOCWl3BCRDHAtPKd41ZdlH5JK26N4Fr\/qoL77x6CqlzubL802SSkVd6RdfXJOW0Pa8oDbmMH5I8AJv7KYoApZbuq0AG5o31K0xsQqlYX9AYEPwuq8qXGBbOgKl9qXDALqvKlxgWzoCpfpHGzEJQq1XjCxp16eQVa6IqraqTGBbOgKl8XzbgYBvUqC\/NxEaSLc2cphR0FRCxFr8qv1ZND8o6IisIVB\/GyQSoCmFie+Ftn\/RFqe3jV\/KAU4yIYdOHdORPk40JIFwK1\/GA8DC0gYvGAIWULRQ2JOyJniAlBvBD8FcLE8o6MNrHitrd\/B2rcN3QbTrIrC\/NxY1G48fuxYUd8vt0N7+mAso3JqomOKPJvIG5cMKQ+MHEhxi2QVTDCP0Itzsfl8dO4nVBHfKIoCseVvrF6Q6KOCL2Bt0\/0AX\/TYGJ54u8GjDvWcrsa17ius9rK8nxcBj91gFqCXoUdcca94fk2oGxTYmuJI7KfDxpjQbwQ\/OVqUv+4S1hxR1xuV+Ma132vbCvL83FtyYFaaxfQEXeq4NOrAFakFA4p6Yj4RvmQ5DCx5Ownr3FHXG5XoxrXm7Swsjwf1z6NE39HFXfEELHegCFlS9QnvhvkH1Esyzb2cRMNSQ4TJ3RklNG44y63qzGN669n\/lUFdyGsEcIL8FMKqGWGQVaIobeQsg1FDwkk\/g4M4pWDv\/CIEs\/acxnX8LgjLrcrvQGhsnTRbkCIZkFVvtS4YBZU5UuNC2ZBVb7UuGAWVOWLNG4WglKlGk\/YuFMvr0ALXXFVjdS4YBZU5esCGhfcX\/AqCzBZckuqUTIMirJFoGoC+AvDfSn41R18jyBenACEqGVvyzSUOZdxrR\/oKysQBGKjC+\/OWRyTxVvSjaJhUI0hDyMHfyE3TMOv3uATgnjNkCjC0+WHwJaJKHOu7LAuL6z5DepSsEaIjdqV5ZgszHNNTpN1YGqWssXYVAT8jXDDbk1m8ELul0rGjVCawZCjHeU37vrPUowL74l3leWYLMxzlYe8JoEBNKiakCDtccNhTXbwQl4d0JhETaqg8F9ItlOFLiK3rFMFiI22leWYLEHuStNk4TAiSCsiWqPgL8MNezW5hFpx4q+3L1OTWteFYaa5jLvOGTWnumN84Wws40JstK0sx2SJLUGjfBhJSKsQ\/KV2Dxu5wYsTf8MzV6pmOJikI8pzqmCdHpSWjwtJ1rCyEJOt+76xwmFEkFbrU0sP8Nf6wBeBX5GlpF8Qog48uuKmHlGmc9z1T5esCvzOGcJG\/asK3gqRFhwr++I4pFeFSGsK+Itja1OPKPU7HfAr+\/B9yWyZjDJfvMthkllQla8LeAMiPguq8qXGBbOgKl9qXDALqvKlxgWzoCpfpHGzEJQq1XjCxp16eQVa6IqraqTGBbOgKl8X0bghn+pVluXjDrj7EN3dBwDAZXnYSEmY+Es1yghjvCUHE0eSdDnlMq4F2ZSVHQb51IV350yQjysHaqHglpBJhQOGjVxvgiOiGoWEMdwSgr\/iJF1OWYy7bO7zrkrmca3b5Xbl5HxcOVAb2917nhlwLJ3XkfCIKCJBSBhHtkQYmjxJN1Qm49o\/Qt39XYJxIZ\/aVRbn4w5N2mK39CjCcMB8Om94wJIjIg9TThjDLSH4Gxw7n6QbKp9xG5C8MDoM8qltZXk+rhSoTU+TDZhUCNQGjSlBvPCIiEYpYczhvE7J9CRdpGznuM6PQBS04toKTxXk+bj9gNqwa29LnkntFVsrPSLiMMHu8o7gOJOTdJGyX1Uo7qs7jegvS9a1IB9XDNRiwS35z+7wLFB+ahhP\/GVjgIVf3ak9XyLwNzVJFyqvcccNGx3rHDdcFfyrCsEGIE1WDtRChVsSTCocMKZso53xR0Q0DrrGB0\/l05J0sbKdKjRXw8pMJOdnQVW+LuINiOgsqMqXGhfMgqp8qXHBLKjKlxoXzIKqfJHGzUJQqlTjCRt36uUVaKErrqqRGhfMgqp8nW\/j4sTWMOzWqyyDSnHjMEyWH7B\/ZR6ys6FQuC8Ef3Hvw8HfsHE4YZzFuMvlwbyLYBoNzE01LsxhhWG3C+\/OmQwqDRsHYrJwwFSWLcHO+oLHC8FfaroGgr9h4xiEcQbjrumaxrgGaly3D0u\/6\/eGHgDU1k3b5jWzKwuhUtg4FJPld7R775NCB5OU\/EYqbpEbWCNhYPBwwrjOHXrngLmDaZuxjYtAcjlUihoHYrJwwERHiJ1FovJS28JeE7fi9jgiTAMPI4zrut6ocQcT5RswrhwqJRoHYbJwwLAjwM4SHTHGhWG04I1+wBERhykjjFldZOOCUwU5VNqv0XqW7IjZ0XpjBewsv4t3VkCBv5LeiWfBEY04n54u3KkCDLsNK8eg0kjEbE9MFrQQHbHsrDsScLwM+EuZZsgRUY1DCOO8xl1N+uEMJ7byvwFR11KolP\/iVC9MVj5gp5lfnsTxurD34eBv2DgGYZzvqkJVVeYC2HSXw+TSGxBbp\/N9A6LnLKjKlxoXzIKqfKlxwSyoypcaF8yCqnyRxs1CUKpU4wkbd+rlFWihK66qkRoXzIKqfJ1v40LAFDR6lWkeN87O1iJM1orEcGqQ0RvekFLSZKWZu1RNdOxsR+7g4e4IvZXHjtT1BnhcqmUDxoWAKWxceHfOAn6UQlrRDVsJJmthA05KKRWvSyOtMfXJ3LUEj504JJx6G+4Oe5dHCxuNb1yPx4UtmzGukeTWuV055EcZpNUvLv\/RW7c7f28XNwyHlJom25YPh9mWhTVjOK9bPRg83D3C48aihY3yrLgBTzNK9N0mjIv4UYYMDAkeISaLK1BQBEJawYkGK0nmbliTx3n9DoLBw90xeltCdtj2Ghfyo3LjyjHZtfyVFQTHRhBhWUeyzN2gJjz2lMRf8o0r6D0WmutLjevMAgGVSk8V5JhsjTaCwbH9kFa3k\/6Zu\/JTBWLwkd1xR3qqUCcaF24AkVZcXIzJNtt4XxvmXjyMCMfSZMWZu7gmc+zBsYDB87vbZ9XyaGGj82xcCJjCRv+qgre84bM3UMfZVuZbrwFUFA8JKCVzV44dU0fDTkeMWpZHC9d1vQEeF7Zsxrhy6Q2IrdP5vgHRcxZU5UuNC2ZBVb7UuGAWVOVLjQtmQVW+SONmIShVqvGEjTv18gq00BVX1UiNC2ZBVb7Ot3EZHte5JO5VFua5Wu1eAJaQe\/F3p4hYml4VdQQHn5S5C1NvhR0FjRSLTE4yVBbjOvm41u2HgT\/Wl2pchsddTyCKGRXmudYIvaUgXWp43u6RSCKrd3lHFPyakrkLU29FHaFGzCIXl4+7PJibu2X2T6pvxrhG9IxL83FxdCsN0YiMi3aHxmWCYyUdRXJnBZm7XGBwrCO+d8wilxB65zQ2rYUY1561rnJCniuJ3soWQrA7JGKZ4NjkFRdACA5LBI6IzvGVdMSn3kYnmdEGjVtGWmM7TfBHqOV5rgC9hT2SabLk7rXfSLKzko4i6C2fuQsnJK0junf\/mw4l5eN2LYPPE0Y0bsintpXl8CuD3srewSPkroTGFJ5MC2vCIUUnpEdHtdeHbHdPmzDuKK4dy7jw83FYOZ7nSqO3Ij+B3SOUbXgGnGRcjN6KM3flfQlTbynflpKPuzze2xnDtT2MC5BZgk\/1ryq4CwwV3RqitxSkCwXIXTG9Ku8oAb0lYWLRF8cTU299Frm4fFz7P6thV8T0BoSq1fm+AdFzFlTlS40LZkFVvtS4YBZU5UuNC2ZBVb5I42YhKFWq8YSNO\/XyCrTQFVfVSI0LZkFVvs63cTG0GqKoXmUXP5Vn2ZKkKTM4Cahak+Cv6HI9Qm9haC5O0qXI3bSOiOQy1FEhPG73A33V5n9ZMuTxIIq68O6cOfipPMsWbwmFgmPJ3UNMVp4mC48XQsmwkSJ3hR3BcVKRvcIgXqPxjUvzuGVhjZRxGfxUkmUbbhkbFUiDc3ZHL2RqmqzZBzkPZtGhRhnf7W0ZG2fXkTxdzyjPiot53CJ+PX09ie5bUleZxU\/jWbZMp\/QG4cZe5B7GZOnefQXHaz8TtvqN9O7xjthx2h0lBPHWdb0pOsyswtP8lm\/SisuF0QqybMGWBL3KvU5uRxCTBb3zQbw1WDKD0Fyy0dk9pSNmlryOSjRuY9\/SvrrTPdVW5vBTQZYt3DI2KpDZ6H26QZgs3buoUwAlU41wd2FH1DjDjso9VVitVuZcYVLjYhQ1rIzwc2mWreTTBRMc6++OMFlxmiw+Xgglo0aC3BV3BMcJe5cH8RplN+7x3tyssptfcTG0is66\/KsK8AqOPMtWQpSSJ3\/4s5rfkzxNNuwIQskEqZxwMg23DMc5vKO6rjfA47pXwyY4x5VIb0Bsnc73DYies6AqX2pcMAuq8qXGBbOgKl9qXDALqvJFGjcLQalSjSds3KmXV6CFrriqRmpcMAuq8nW+jUuGyHqBr15l71kitjaBNKXHViF6NbiDLDuKSEdwnPhmBxEHIjqiOP1cp4TmUspiXJvHbXUw71jHzRiXDpH1A18X3p0zKh\/X2UhKmjJj87ZkAn0lRwEFx0njvH5NOY8rp5\/lobmMxjeux+O2rt2ZzwtJawyJW7ty+GwktjZGmsYU+WFr+VGQ1YNxUoPnasp4XAmLJw\/NZXP8eVIAAAxESURBVJRnxXUhm\/V\/FRIziojbrjKRjwvexMSkKa9wS5FxxbG1eJxUI6wp53Fl9LM8NJdRduOaP0M3T2VcSNy2lTke1zzPELGNHNKUpVch\/Coxrjy2Fo4TNkaOXcbjSlZc+\/w+FppLKq9xl37m3aDT3FGMC4nbtrI8H1dOmlKitpQl40bGiXa0wUKCNpQdu6w70VPy0FxPmzhVYBo3b1zYHlZ2XloUWysnTYlRkVsKz3H59lZwnDzOi4899nETjSeyuzw0N9R5Ni4dIutfDPKvKnirzkDSNBSxJRyw\/CiwILnLwMSSY0eS08\/y0FxG2a4qVFXlArhTrbg9ZkFVvs73DYies6AqX2pcMAuq8qXGBbOgKl9qXDALqvJFGjcLQalSjSds3KmXV6CFrriqRmpcMAuq8nW+jQsIUQjXepVlPC7YsgakaWRwkoxY1EhCukw\/3hM0etsTk6UCbr1w3xS+mVQW45L5uBtPsgkhPcgoLrw7ZwIeN7JlrzRZmBELG2lIF3QkRG+TIntDUQG3YbivnG9mNL5x\/XzcwemivY3bTFyacYU8LtySJ02xnLxla6kTBMfKjCtFbxMie5Hw7gg+6MU3+8qz4tq\/5VueccO3vq5yEo+LtmRIU18BqAptxORvil5hMXorj+yFgrvDcN8efHOozRi3O1GY3LiWurWurSzncYktA9I0JU12kHFTeFw4eGlkb0riLwz3hQfP5Q0jZTdu17jt+bjuLqPQq0HN8U8V5Ogtd6rQN\/EXhvvCvSi+mdImjVvCb0BguDasHOVxifprxT5hYFAVZsQywbGyc1whepsS2YuEdwcEcwLfzCj\/qUL74yXHezub\/Q2I0fJxmSxbd0uaNA2U9FWwoJGGdAONgN4OSvwF4b5CvplVtqsKVVWZfFzrvzUfVzWWzvcNiJ6zoCpfalwwC6rypcYFs6AqX2pcMAuq8kUaNwtBqVKNJ2zcqZdXoIWuuKpGalwwC6rydb6NS0KrHiHqVYa5s7DRq8NsSQ0Opb7Z7RwRC3tn+nFH6N8DGI7JsoQxn49LNlLKYlwvH7fFbDYM2VDQakiILrw7ZyB3FjSGdejdw40wfBLUJIlYonfQUci5wjvSAzFZeETifNwElNlofOP6PO7BfPjvpvczrpEkVs2uDDNiQSNx\/14YW2uPx\/7CAWMOx7fikC3IuaYYNw2TNfuwHBimllNR5jwrrsUqmLV3uGvHMi4kRLvKMCMWo7egTkJsbQ2DY1FNdCD8lqgX580aErEjYLIwSVeWj5uGMuePGbW\/tzMNqxAky1bhu1dbGYKqRCOoI4+tdQZkv7FS9OoNb7kPtkzhcXH3qBHsnnJERCPMx6VDc5E2YNz1ecLm6TCj0LghIdpWJkBV0AjryGNr4Qg5etX97yjnig4f44J8qmkqJiup2a\/R0waNWwSPixnQsHJ8QjFLyu1uiQiOpWv67mR7d3sKnQeJ2IGYLDyi5HxcqjHUBs5xqy5KvwQeFxGi\/lUFsGSyF5XCk5HoiiunV01N\/OXycMtAkHOV08ByTFZcE1LLCShzXdeb4HE7IHfopzS9AaFqdb5vQPScBVX5UuOCWVCVLzUumAVV+VLjgllQlS\/SuFkISpVqPGHjTr28Ai10xVU1UuOCWVCVr\/Nt3JDHxXirVzkAavE9BSoOVsbjQla4u1\/PQrrU7kBUuK+MBuYaiSMaNEtClLneAI\/r\/5jv\/GBjxkU8LsZbF96dMxeopZBWGAcr5HEhK9yW9G6QhuitPB+XomxlNDDZGGqMWRJNndH4xvV4XFvt7d\/NGNeImggbt7Irc6m31j5URFwSj8slSbIRs7HdO0Vu\/Udp4GHgb9IsJU1dnhWX+i3fAugw2N5Vpnjc4M0Wh3Im8biyf1QMeis0LoYNZDTwQPA3YZYSp25zxh243I5sXBdvbStD9BYirUQcbBqPSyU92ucJDKQryce1hDjZGA08EPyVzhLRyGhDxh2+3I5sXPcdsK0cD45l3wRTedxwbAb\/91oo9DbhC0L09jwNPBD8lc9S6tRtyLjDl9txjeu9BmFldzEALwmTJkt1Gh0b\/khNo7eCXmLobZQGHgT+9pmlglbcUZbbHsalQ2R9vNW\/quD9u5cjrXB34dj8t2AOIE7Ix5WjtwTjOz74S85Swlfhs11VqKrK4nGHL7c9jCuX3oDYOp3vGxA9Z0FVvtS4YBZU5UuNC2ZBVb7UuGAWVOWLNG4WglKlGk\/YuFMvr0ALXXFVjdS4YBZU5et8G5dlXq2r3F5lkscliFav1wE8LqBXKaBWnCYrHWdKaC4Q2pIM90WQLskiQ2Uxrs3jWj\/Qt+lAEAitQmx04d05c6lQiMnSwbH9eVxIr0ZyimJpsvJxDglEIrbE9DM8TIpFpjS+cW0e184La36DevLQO4CN2pVZKtT+eWUcHDuEx4VISiS2NnZzXz7ODMZ1nm17oiDdmmv0lWfF7ULvLOMi1nHzxoV3z7vKLBV6w3udw7e2YTwuhACpLFtpmqx4nAmhuXw\/sXBf6u+2jmTu8hp3ZU4bJjpVgFMDsdG2MkOFepgsrDOQx+VfUf\/rCk3BdZpsCiYbg1\/ZhNse4K9rRuYwvUlmlN2465xRc6o74AtnYxkXYqNtZYoKDTFZAj\/Fu\/cZG9q9BwfYb5xDgEOwpUuRUocZTjKjzKcKztJbRD4uxEbDyt6HM\/TVAVCH6lQ4NkSv4thaa5fob4oIx5kQmov7obf06GcI6Yq\/3rtW7nPc9U+XrMrJx0XYqH9VwV6KKEyWDI7ty+PW9Plo0JiQJisfZwq5C8Sgt94gwy1pFplStqsKVVUZHne6y2Fy6Q2IrdP5vgHRcxZU5UuNC2ZBVb7UuGAWVOVLjQtmQVW+SONmIShVqvGEjTv18gq00BVX1UiNC2ZBVb7Ot3Ex8xqSrF5lgscluF4\/s1Z4EV3KCjNErCC2lhpSQjovFXBLdxanbBFMXBqP20E2m84Oo5jXkGRdeHfOEI8ryLLF+Kl8bFTELHwlZbG1eEjydF464NaXnLKFL0GBPG5zy7c0Htd6yq5MAbWiLFu3SP+xudj1kNhaZkiSI4pyP6hahLKNwcRF8Lj2j1B3f09oXEiydpVpoFaSZRvdOLIZjyX0i62lhyQ5ohhpiavxlC0PExfB4y6bZXZVDB0GSFYZjyvJsu1aIYkNTvXirLA78u7tVBhbC4aUckTAjkRHKZQteAmILUnlNe7K+c7Z0NPckYwLnmorM6CqJMu2fUL4Pi5hheH28thaZkiSIxp+qsBTtm6cazE8brRxQuPSX5bEe4mybOu6Tjn\/FLDCBOcqjq1lhiQ5Ij7gNrolT9naL0FZPG7XMkbYaI+rCuGlIEiy+lcV3A2SsmyFny3krHBSli0hf0gJRzSExyVqgpegRB63uRo2VSK5RHoDYut0vm9A9JwFVflS44JZUJUvNS6YBVX5UuOCWVCVL9K4WQhKlWo8YeNOvbwCLXTFVTVS44JZUJWv821cKWDqVYYBtyH82t2oAMVj+TLE5fYkUFXA4+LjZVJLhIfJHhTgZsL5DBvFHdX16Ma1yQRzx2FyHnc9JSxguvDunAUBtyH8enQJ\/DQ0bEQig2PloKqMx8XHS4XmCg8TigZqYWCw3yjvyGhs4x7M1\/Rtw4UZlnFl7qhNEXrXTpP5C7IgdmXA4\/LwARttGNUNb0BCULUPxxML9+1xmNSm7jc4Qr6ZSxGexLidg5fHezs7X\/jOtY7HnQiyqd1XB9J3XWUcHEvAr+s77JCplb7IOFo5BqrKeVxMG2LwN+UwafkpwiHfTEHPKR1lM+7x3s7O3nf+59rkIHkcMI3xuAB+tcWvuGmYrBRUlfO4RFg0DM2VHSZ7RME44Xyy6bwTrrjtecLk34AQAqZtZcjjRuHX\/mmy9LszD6rKeVx4vBD87XeY3qiC2Qbz2S+d19P4xnW\/9XAw4amCHDANK8O3trp7na1X2f6yJGjkRHkuDqqKeVx4vDg0V3qYWDxQG\/u3nTx1Oa4qON\/PmezDWQpg6l9VCBYDAL8OTJM1HbmvUBKoKuVx4ZCI0FzpYXK9hFXhpTdZOi+tkY3rfE9n\/VXfyS6HyaU3ILZO5\/sGRM9ZUJUvNS6YBVX5UuOCWVCVLzUumAVV+SKNm4WgVKnGEzbuZv\/9qFSDpMZVbaXUuKqtlBpXtZVS46q2Umpc1VZKjavaSqlxVVup\/wc2g84owBsxggAAAABJRU5ErkJggg==\" \/><\/p>\n<p>Ok, let\u00b4s check where PostgreSQL is writing its output:<\/p>\n<p><span style=\"font-family: courier new,courier; font-size: 12px;\">root@debian:~# <span style=\"color: #ff0000;\"><strong>ps auxw | grep postgres | grep &#8212; -D<\/strong><\/span><\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">postgres\u00a0 5389\u00a0 0.0\u00a0 0.6 200188 13924 ?\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 S\u00a0\u00a0\u00a0 15:10\u00a0\u00a0 0:00 \/opt\/PostgreSQL\/9.3\/bin\/postgres -D \/opt\/PostgreSQL\/9.3\/data<\/span><\/p>\n<p>(of course I can use database way &#8211; <code><span style=\"font-family: courier new,courier; font-size: 12px;\"><code>select setting from pg_settings where name = 'data_directory'<\/code><\/span><\/code>\u00a0 )<\/p>\n<p>Data directory (\/opt\/PostgreSQL\/9.3\/data) contains of many files\/directories. Very helpful is <a href=\"http:\/\/www.postgresql.org\/docs\/9.3\/static\/storage-file-layout.html\">documentation <\/a>from PostgreSQL which introducing newbie into their storage system very good! Very briefly &#8211; directory <strong>base<\/strong> contains database directories:<\/p>\n<p><span style=\"font-family: courier new,courier; font-size: 12px;\">root@debian:\/opt\/PostgreSQL\/9.3\/data\/base# <span style=\"color: #ff0000;\"><strong>ls -la<\/strong><\/span><\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">total 28<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">drwx&#8212;&#8212;\u00a0 5 postgres postgres\u00a0 4096 Feb\u00a0 5 14:40 .<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">drwx&#8212;&#8212; 16 postgres postgres\u00a0 4096 Feb\u00a0 5 15:10 ..<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">drwx&#8212;&#8212;\u00a0 2 postgres postgres 12288 Feb\u00a0 5 14:40 1<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">drwx&#8212;&#8212;\u00a0 2 postgres postgres\u00a0 4096 Feb\u00a0 5 14:40 12030<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">drwx&#8212;&#8212;\u00a0 2 postgres postgres\u00a0 4096 Feb\u00a0 5 15:24 12035<\/span><\/p>\n<p>Numbers of directories = filnode number &#8211; in this case on database level. Ok, I just need to know &#8222;path&#8220; to my acc_test table &#8211; no names are expected, just bunch of numbers. Wohooo, paradise for math lunatics! \ud83d\ude42 So back to database:<\/p>\n<p><span style=\"color: #ff0000;\"><strong><span style=\"font-family: courier new,courier; font-size: 12px;\">SELECT pg_relation_filepath(oid), relpages FROM pg_class WHERE relname = &#8218;acc_test&#8216;;<\/span><\/strong><\/span><\/p>\n<p><span style=\"font-family: courier new,courier; font-size: 12px;\">\u00a0pg_relation_filepath\u00a0\u00a0\u00a0\u00a0 relpages\u00a0\u00a0 \u00a0<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">\u00a0&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;\u00a0 &#8212;&#8212;&#8212;&#8211; <\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">\u00a0<strong>base\/12035\/16393<\/strong>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0<\/span><\/p>\n<p><span style=\"font-family: courier new,courier; font-size: 12px;\">\u00a01 record(s) selected [Fetch MetaData: 2ms] [Fetch Data: 0ms] <\/span><\/p>\n<p><span style=\"font-family: courier new,courier; font-size: 12px;\">\u00a0[Executed: 2\/5\/2014 3:47:26 PM] [Execution: 1ms] <\/span><\/p>\n<p>Back to Debian:<\/p>\n<p><span style=\"font-family: courier new,courier; font-size: 12px;\">root@debian:\/opt\/PostgreSQL\/9.3\/data# <span style=\"color: #ff0000;\"><strong>ls -la base\/12035\/16393<\/strong><\/span><\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">-rw&#8212;&#8212;- 1 postgres postgres 8192 Feb\u00a0 5 15:25 base\/12035\/16393<\/span><\/p>\n<p>Well, 8192 size looks promising, some conatiner page. Let&#8216; s run our credit card number checking command:<\/p>\n<p><span style=\"font-family: courier new,courier; font-size: 12px;\">root@debian:~# <span style=\"color: #ff0000;\"><strong>time strings -a \/opt\/PostgreSQL\/9.3\/data\/base\/12035\/16393 | grep &#8222;[0-9]\\{4\\}\\-[0-9]\\{4\\}\\-[0-9]\\{4\\}\\-[0-9]\\{4\\}&#8220;<\/strong><\/span><\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4633-7926-0863-2443<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4127-1856-7120-0292<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4284-1059-8455-5702<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4804-1261-5366-8044<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4464-3676-8558-3399<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4549-3001-8407-0658<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4582-2114-8843-1397<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4787-0768-3223-3820<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4961-6591-9364-9979<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4016-7845-2950-8098<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4339-4136-0219-4499<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4688-8299-4664-4385<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4044-8832-9347-1412<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4692-4078-2653-8573<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4997-5257-8004-9774<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4649-1103-3295-2551<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4691-3746-9407-0405<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4548-7929-1826-4899<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4531-2930-4967-2232<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">)4255-8613-9716-5076<\/span><\/p>\n<p><span style=\"font-family: courier new,courier; font-size: 12px;\">real\u00a0\u00a0 \u00a00m0.115s<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">user\u00a0\u00a0 \u00a00m0.000s<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">sys\u00a0\u00a0 \u00a00m0.000s<\/span><br \/>\n<span style=\"font-family: courier new,courier; font-size: 12px;\">root@debian:~# <\/span><\/p>\n<p>Well, PostgreSQL in default setting belongs into loosing field, next to Oracle and DB2. It&#8217;s not so easy to get CC numbers (you don&#8217;t know table number), but it&#8217;s nothing what can stop anyone from trying to run command accross all files (simple script) + I&#8217;m just curious about data storage, not how hard it can be to achieve proper number \ud83d\ude42 Well, it&#8217;s pitty!<\/p>\n<p>-a-<\/p>\n","protected":false},"excerpt":{"rendered":"<p>4th part (Oracle, DB2, MySQL) of my series &#8222;How xxx stores data&#8220; with an idea of insider (system administrator) who wants to be rich (selling valid credit card numbers) \ud83d\ude42 PostgreSQL is excellent product. Let\u00b4s see if they are thinking &hellip; <a href=\"http:\/\/it.tuxie.eu\/?p=334\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[7,15],"tags":[],"_links":{"self":[{"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/posts\/334"}],"collection":[{"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=334"}],"version-history":[{"count":0,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=\/wp\/v2\/posts\/334\/revisions"}],"wp:attachment":[{"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=334"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/it.tuxie.eu\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}