{"_id":"sql-bricks-postgres","_rev":"21-bf910fd0bbf0165cae772b746d461248","name":"sql-bricks-postgres","description":"Transparent, Schemaless SQL Generation for the PostgreSQL","dist-tags":{"latest":"0.6.0"},"versions":{"0.1.0":{"name":"sql-bricks-postgres","version":"0.1.0","author":{"name":"Peter Rust","email":"peter@cornerstonenw.com"},"description":"Transparent, Schemaless SQL Generation for the Postgres dialect","homepage":"https://github.com/CSNW/sql-bricks-postgres","bugs":{"url":"https://github.com/CSNW/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"https://github.com/CSNW/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"underscore":"1.4.x","sql-bricks":"1.0.0-beta.2"},"devDependencies":{"mocha":"1.13.x"},"license":"MIT","_id":"sql-bricks-postgres@0.1.0","dist":{"shasum":"a042da31b07329359fb3f97a2f43aca594c0bf42","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.1.0.tgz","integrity":"sha512-MUxLCDpQNbQQ9F37M+moURYpG981Wlkk8Zfl8M02Utx4XD9OxPU5GMm8TEAtN2L0YWWHH8y9tERrAeAIJelFeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDQFbYnaYOw6ES4KsEm/jHaAuMH+Uob58tfCw2KGAPExAiEAhECtPB7CGxCouE68YNDmMUzse00Pg7F0vVk43QM9qhg="}]},"_from":".","_npmVersion":"1.3.24","_npmUser":{"name":"prust","email":"peter@cornerstonenw.com"},"maintainers":[{"name":"prust","email":"peter@cornerstonenw.com"}],"directories":{}},"0.2.0":{"name":"sql-bricks-postgres","version":"0.2.0","author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"description":"Transparent, Schemaless SQL Generation for the PostgreSQL","homepage":"https://github.com/Suor/sql-bricks-postgres","bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"https://github.com/Suor/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"underscore":"1.7.x","sql-bricks":"1.0.2"},"devDependencies":{"mocha":"1.21.x"},"license":"MIT","gitHead":"f42115d127768e792bd3a1f81e9e8b177b32ecea","_id":"sql-bricks-postgres@0.2.0","_shasum":"3cc011bd146539caafdc9afffa3a6722c60898b1","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"suor","email":"suor.web@gmail.com"},"maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"dist":{"shasum":"3cc011bd146539caafdc9afffa3a6722c60898b1","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.2.0.tgz","integrity":"sha512-Zv08poaWumRbi4C2K2hffuuAyMZYtGT/r1hfJbtOtnSBD2ayG/BptDd29s5eaewer7DIgqF2bdX6X1wQZY1tog==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEXE1SfffH8lCE8nVAbqmeACAcoCZbTV1XxFc+X8AsrPAiA0IQCInrgMv0bpbnDz0GwUEAkNJltoygcgj0MeACyNpw=="}]},"directories":{}},"0.2.1":{"name":"sql-bricks-postgres","version":"0.2.1","author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"description":"Transparent, Schemaless SQL Generation for the PostgreSQL","homepage":"https://github.com/Suor/sql-bricks-postgres","bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"https://github.com/Suor/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"underscore":"^1.4.x","sql-bricks":"^1.0.3"},"devDependencies":{"mocha":"1.21.x"},"license":"MIT","gitHead":"4eefdcbca4e2e5d2e50db07063caf29f54439e72","_id":"sql-bricks-postgres@0.2.1","_shasum":"549cf7dc8085fddc4fa2041fe64d896bb429e7fa","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"suor","email":"suor.web@gmail.com"},"maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"dist":{"shasum":"549cf7dc8085fddc4fa2041fe64d896bb429e7fa","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.2.1.tgz","integrity":"sha512-SmzJLJPi3w+VrL0H8rYX/9x3qZvMWYmcwMmgR6iJfmPLNWmXSevv8nijXAN2c2JCRqj7THW+5LoCAdYoQ20H+w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOH9KoSWVIEWnGF5Nh7bmqnpWxnrF9DhP0p50NBV4i/gIhAO5Q7JYOMYPmXk835GcRQVUlFV+i0Oq4L+FUNcrpg8M3"}]},"directories":{}},"0.3.0":{"name":"sql-bricks-postgres","version":"0.3.0","author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"description":"Transparent, Schemaless SQL Generation for the PostgreSQL","homepage":"https://github.com/Suor/sql-bricks-postgres","bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"https://github.com/Suor/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"underscore":"^1.4.x","sql-bricks":"^1.0.3"},"devDependencies":{"mocha":"1.21.x"},"license":"MIT","gitHead":"7854dac6da80932397a426f9820165bddef894c4","_id":"sql-bricks-postgres@0.3.0","_shasum":"e31d49693594cad4e9283697390673e414ffd03b","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"suor","email":"suor.web@gmail.com"},"maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"dist":{"shasum":"e31d49693594cad4e9283697390673e414ffd03b","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.3.0.tgz","integrity":"sha512-sz+oGTVg3oD1yCqJA1PYx+/z4IpQTJD0dGDGKf/eyI0Mx2jgMENjmG9P8c/Td+8o0WwFS0j12HUWip6Kip7a0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDskgONRUCnmWgZ1V56atSJGNw/eqYr1yM6eWwNWAvObAIgX+bS7DgCJhnwNgoUraDCZv//Oqdlak0H/oKEZg1AkUM="}]},"directories":{}},"0.4.0":{"name":"sql-bricks-postgres","version":"0.4.0","author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"description":"Transparent, Schemaless SQL Generation for the PostgreSQL","homepage":"https://github.com/Suor/sql-bricks-postgres","bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"https://github.com/Suor/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"underscore":"^1.4.x","sql-bricks":"^1.1.0"},"devDependencies":{"mocha":"1.21.x"},"license":"MIT","gitHead":"6c244d8ef6d2b3dec2687777c8914eedbf8be2f9","_id":"sql-bricks-postgres@0.4.0","_shasum":"87d830da62fe8b71101bb3de49e1f67f00122b32","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"suor","email":"suor.web@gmail.com"},"maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"dist":{"shasum":"87d830da62fe8b71101bb3de49e1f67f00122b32","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.4.0.tgz","integrity":"sha512-70dY1aFAOCxHSS6S3H8mo/i031JGiPGUjTBXrPPRdd7W0ynuEwnCwMWNkCbZ24wd1C8RQOapFgdhFnSZq7VelQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVwS79B2wC4JewEjEATKslFYgdNHjFJx3Hfoe1b8FmGAiEA3UpTedVAhD/wEk9QNFq9ZvE1wr5TnKKEX7ToYZUVx1c="}]},"directories":{}},"0.4.1":{"name":"sql-bricks-postgres","version":"0.4.1","author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"description":"Transparent, Schemaless SQL Generation for the PostgreSQL","homepage":"https://github.com/Suor/sql-bricks-postgres","bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"https://github.com/Suor/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"underscore":"^1.4.x","sql-bricks":"^1.1.0"},"devDependencies":{"mocha":"1.21.x"},"license":"MIT","gitHead":"552156b1fc18ce96e766577042e0fb9a4e883ce8","_id":"sql-bricks-postgres@0.4.1","_shasum":"27c53e41c462b611df0b67d47ed2c759c99e8f7c","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"suor","email":"suor.web@gmail.com"},"maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"dist":{"shasum":"27c53e41c462b611df0b67d47ed2c759c99e8f7c","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.4.1.tgz","integrity":"sha512-XMnECeZ6eT4HZz4XT4Zv+UUcblYvAzx2us/mVkLOpXF1wvzZXKG4qz1iaI/KkmQF4lImP96JQ9MzMe01c64Azw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEBpWcWS4LZAf7WarI3EpuRdcKQpkS1d9C/9gg2+sET1AiAMjQ0l8zr9fYUGux160jsaakcb/8I0d8vkeNtCu7awfw=="}]},"directories":{}},"0.4.2":{"name":"sql-bricks-postgres","version":"0.4.2","author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"description":"Transparent, Schemaless SQL Generation for the PostgreSQL","homepage":"https://github.com/Suor/sql-bricks-postgres","bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"https://github.com/Suor/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"underscore":"^1.4.x","sql-bricks":"^1.2.2"},"devDependencies":{"mocha":"1.21.x"},"license":"MIT","gitHead":"1d535e9b9f53e2611cb7996e9e451014775aa166","_id":"sql-bricks-postgres@0.4.2","_shasum":"2f8abf555f574a1854f681cfec0834ddea9a80e7","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"suor","email":"suor.web@gmail.com"},"maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"dist":{"shasum":"2f8abf555f574a1854f681cfec0834ddea9a80e7","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.4.2.tgz","integrity":"sha512-D0pSzgRlClFmv24z+RW4Rpp0j0lUkaxAjfmk1n/kFQSqnMdS7UbEdbyZUAM8xoPRIUl+FHGgTCQuvP4IRxHANA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/mqIyOF64xJ8ol0x/7DFq1OlcKPXhf4/IEpOibmdxZgIhAIKzaU32pgRc8wXvyw453fJKTOkTaNbdEtlVl59Ou+sZ"}]},"directories":{}},"0.4.3":{"name":"sql-bricks-postgres","version":"0.4.3","author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"description":"Transparent, Schemaless SQL Generation for the PostgreSQL","homepage":"https://github.com/Suor/sql-bricks-postgres","bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"git+https://github.com/Suor/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"underscore":"^1.4.x","sql-bricks":"^2"},"devDependencies":{"mocha":"1.21.x"},"license":"MIT","gitHead":"ca284abc8554c589d0635654167347cb8213a4d6","_id":"sql-bricks-postgres@0.4.3","_shasum":"914d668a420feab1de8ee157eb84efd12acbe5af","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.1","_npmUser":{"name":"suor","email":"suor.web@gmail.com"},"maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"dist":{"shasum":"914d668a420feab1de8ee157eb84efd12acbe5af","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.4.3.tgz","integrity":"sha512-1rJucFnpqScLdROOy7ocr1CSOQu9jDWL6LPlZpgIncmU4Oe+m8haTA4Gz4nmW3d64gyvvXmoKZyGQVvgNX0f0A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjQvxQp+nDrLiVyFyyH7+PQ+w7uvg9Dtvi5IF+IahrSAIgDZJoQ8CUdb38AdeOvxRWA/ao/dJ5YpbMW1BrKgem2RY="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/sql-bricks-postgres-0.4.3.tgz_1477797978415_0.3760439318139106"},"directories":{}},"0.5.0":{"name":"sql-bricks-postgres","version":"0.5.0","author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"description":"Transparent, Schemaless SQL Generation for the PostgreSQL","homepage":"https://github.com/Suor/sql-bricks-postgres","bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"git+https://github.com/Suor/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"sql-bricks":"^2","underscore":"^1.4.x"},"devDependencies":{"mocha":"1.21.x"},"license":"MIT","gitHead":"fb040d1796bdb56af412bce86b45cb7b86c11df3","_id":"sql-bricks-postgres@0.5.0","_npmVersion":"5.3.0","_nodeVersion":"8.2.1","_npmUser":{"name":"suor","email":"suor.web@gmail.com"},"dist":{"integrity":"sha512-HaE7o89JU5GIZfs53DBIJgs2rVpIj/HisPhr6jRyILqPy505xlEmsvVZVZmXKVaGxqwuxNM+R71owaPBMK0cGQ==","shasum":"d77598d5b16d0fa3b1ab4b89bc8d679af4dcc0a4","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.5.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICCOfidUk/kMtqaXMojxvn2r3KY/uo70R5zXHvF1c6ENAiEAx9E3Ef39WIAP3dpCHK2iTRbj/rm4rjJT2rSfe3AppJo="}]},"maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sql-bricks-postgres-0.5.0.tgz_1502637916058_0.41536891274154186"},"directories":{}},"0.6.0":{"name":"sql-bricks-postgres","version":"0.6.0","author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"description":"Transparent, Schemaless SQL Generation for the PostgreSQL","homepage":"https://github.com/Suor/sql-bricks-postgres","bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"scripts":{"test":"mocha postgres-tests.js"},"main":"postgres.js","repository":{"type":"git","url":"git+https://github.com/Suor/sql-bricks-postgres.git"},"keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"engines":{"node":"*"},"dependencies":{"sql-bricks":"^3","underscore":"^1.4.x"},"devDependencies":{"mocha":"1.21.x"},"license":"MIT","gitHead":"3b71e96e834240881ae707f67d2b21cdb8c32a02","_id":"sql-bricks-postgres@0.6.0","_nodeVersion":"16.14.2","_npmVersion":"8.5.5","dist":{"integrity":"sha512-JbStbgWRWSV9pOnJLjBUzgFT4z3n2e90IyZsCCMLa/bYBg3uIyd8Uawk567gt4b25TRKDdX91+ru5SneCqeMgA==","shasum":"111708cdd6ad6340ccedddba5f0ea39d9fb56b20","tarball":"https://registry.npmjs.org/sql-bricks-postgres/-/sql-bricks-postgres-0.6.0.tgz","fileCount":6,"unpackedSize":25270,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA/SYb6PIM1NlPl7NtLq9c+6a10TBgAbnKR9b0FyxITKAiEA68xh9PXE/0PIdU0E6dlh308fVINZyR1gTY6P23Fisvc="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJibMD2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoLqQ//VfI8oF2sXzzCZG/FzsLxtEkDmx4VSkN/wcag+tz3vkspMznI\r\n9OxfUtqy/eD2GZcrkNntPUFK3vF93C9x2CIk1+TIqct26WiFQ9MMXsMJOFqN\r\nYtt7URiIUCpG4MEFd4jlh/9PTSNXfLmpcKHleRTUiyvBZi40TRq88NNIf5p5\r\n8vXrLio7zMxkPo9fVzsbjRuzrFzcInDum9kj14E/V8nODwC6vdowQzY6CzGC\r\n/WSVQaG26KLm0pbpuA6fvMyOMckoauShTzwoOqxA3PrNFfkRipyo7WnM7PTG\r\nBnh55Ov+tyDlFxAp73ishkwDEycTsPy36HIjPUVzkhBemXBmDiy+N0ffic5U\r\nUeacWAximEaINl9izoFnTahZJjNEncnthNgu59PhWunzVA53bkiKOlF5Feyl\r\nNasM4u6Xs03LjmBDn6/hspiF8BtyajCmjXi0XYcC4vU774bdvpxQSLrhLXm+\r\nUFMi7C5jxoiZjWkeQoHK2bfRmlhlcy0JJYgeZpNWcMTXGrrUcsleiOFM86B+\r\nvv+YTflP2ivzD5GdEB054G/jGiDuzK6ySK7vrNumQ5QX6+upzBgYSVubzRrH\r\n4fC0J3gXwShjJx2aqa/jIec0sRVfOfyhK+Nb/3WEe5N6ubpGowPRbWBYuerS\r\nJaFqPk3O5Pvn9ruWWBKDlpprVRyyDUq5p3s=\r\n=euNi\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"suor","email":"suor.web@gmail.com"},"directories":{},"maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sql-bricks-postgres_0.6.0_1651294454800_0.30668573706562974"},"_hasShrinkwrap":false}},"readme":"# PostgreSQL dialect for SQLBricks\r\n\r\nThis is a lightweight, schemaless library helping you to generate statements for PostgreSQL.\r\nIt is based on [sql-bricks](https://github.com/CSNW/sql-bricks) and adds PostgreSQL specific things into it.\r\n\r\nYou might also want to take a look at [pg-bricks](https://github.com/Suor/pg-bricks), which adds query execution, connections and transaction handling on top of this library.\r\n\r\n\r\n## Usage\r\n\r\n```javascript\r\n// in node:\r\nvar sql = require('sql-bricks-postgres');\r\n// in the browser:\r\nvar sql = PostgresBricks;\r\n\r\nsql.select().from('user').where({name: 'Fred'}).toParams();\r\n// {text: 'SELECT * FROM \"user\" WHERE name = $1', values: ['Fred']}\r\n\r\nsql.select().from('user').where({name: 'Fred'}).toString();\r\n// SELECT * FROM \"user\" WHERE name = 'Fred'\r\n\r\n// NOTE: never use .toString() to execute a query,\r\n//       leave values for db library to quote\r\n```\r\n\r\nYou can read about basic flavor of how this thing works in [sql-bricks documentation](http://csnw.github.io/sql-bricks). Here go PostgreSQL specifics.\r\n\r\n\r\n### LIMIT and OFFSET\r\n\r\n```js\r\nsql.select().from('user').limit(10).offset(20).toString()\r\n// SELECT * FROM \"user\" LIMIT 10 OFFSET 20\r\n```\r\n\r\n\r\n### RETURNING\r\n\r\n```js\r\nsql.update('user', {name: 'John'}).where({id: 1}).returning('*')\r\n// UPDATE \"user\" SET name = 'John' WHERE id = 1 RETURNING *\r\n\r\nsql.delete('job').where({finished: true}).returning('id')\r\n// DELETE FROM job WHERE finished = TRUE RETURNING id\r\n```\r\n\r\n\r\n### UPDATE ... FROM\r\n\r\n```js\r\nsql.update('setting', {value: sql('V.value')})\r\n   .from('val as V').where({name: sql('V.name')}).toString()\r\n// UPDATE setting SET value = V.value\r\n//   FROM val as V WHERE name = V.name\r\n```\r\n\r\n\r\n### DELETE ... USING\r\n\r\n```js\r\nsql.delete('user').using('address')\r\n   .where('user.addr_fk', sql('address.pk'))\r\n// DELETE FROM user USING address WHERE user.addr_fk = address.pk\r\n```\r\n\r\n\r\n### ON CONFLICT ... DO NOTHING / DO UPDATE ...\r\n\r\nThe most popular use case is probably UPSERT:\r\n\r\n```js\r\nsql.insert('user', {name: 'Alex', age: 34})\r\n   .onConflict('name').doUpdate('age')\r\n// INSERT INTO \"user\" (name) VALUES ('Alex', 34)\r\n//     ON CONFLICT (name) DO UPDATE SET age = EXCLUDED.age\r\n\r\n// sql-bricks-postgres will update all fields if none are specified\r\nsql.insert('user', {name: 'Alex', age: 34})\r\n   .onConflict('name').doUpdate()\r\n// INSERT INTO \"user\" (name) VALUES ('Alex', 34)\r\n//   ON CONFLICT (name)\r\n//   DO UPDATE SET name = EXCLUDED.name, age = EXCLUDED.age\r\n\r\n// manipulate the data in the `DO UPDATE`:\r\nsql.insert('user', {name: 'Alex', age: 34})\r\n    .onConflict('name').doUpdate()\r\n    .set(sql('name = coalesce(EXCLUDED.name, $1), age = $2 + 10', t1, t2))\r\n// INSERT INTO \"user\" (name) VALUES ('Alex', 34)\r\n//   ON CONFLICT (name)\r\n//   DO UPDATE SET name = coalesce(EXCLUDED.name, $3), age = $4 + 10\r\n```\r\n\r\nOther clauses such as `DO NOTHING`, `ON CONSTRAINT` and `WHERE` are\r\nalso supported:\r\n\r\n```js\r\nsql.insert('user', ...).onConflict('name').where({is_active: true})\r\n   .doNothing()\r\n// INSERT INTO \"user\" ... VALUES ...\r\n//     ON CONFLICT (name) WHERE is_active = true DO NOTHING\r\n\r\nsql.insert('user', ...).onConflict().onConstraint('name_idx')\r\n    .doUpdate().where(sql('is_active'))\r\n// INSERT INTO \"user\" ... VALUES ...\r\n//     ON CONFLICT ON CONSTRAINT name_idx\r\n//     DO UPDATE SET ... WHERE is_active\"\r\n```\r\n\r\n\r\n### FROM VALUES\r\n\r\n`VALUES` statement is a handy way to provide data with a query. It is most known in a context of `INSERT`, but could be used for other things like altering selects and doing mass updates:\r\n\r\n```js\r\nvar data = [{name: 'a', value: 1}, {name: 'b', value: 2}];\r\nsql.select().from(sql.values(data)).toString();\r\n// SELECT * FROM (VALUES ('a', 1), ('b', 2))\r\n\r\nsql.update('setting s', {value: sql('v.value')})\r\n   .from(sql.values({name: 'a', value: 1}).as('v').columns())\r\n   .where('s.name', sql('v.name')}).toString()\r\n// UPDATE setting s SET value = v.value\r\n//   FROM (VALUES ('a', 1)) v (name, value) WHERE s.name = v.name\r\n```\r\n\r\nSometimes you need types on values columns for query to work. You can use `.types()` method to provide them:\r\n\r\n```js\r\nvar data = {i: 1, f: 1.5, b: true, s: 'hi'};\r\ninsert('domain', _.keys(data))\r\n    .select().from(sql.values(data).as('v').columns().types())\r\n    .where(sql.not(sql.exists(\r\n        select('1').from('domain d')\r\n        .where({'d.job_id': sql('v.job_id'), 'd.domain': sql('v.domain')}))))\r\n// INSERT INTO domain (i, f, b, s)\r\n// SELECT * FROM (VALUES ($5::int, $6::float, $7::bool, $8)) v (i, f, b, s)\r\n// WHERE NOT EXISTS\r\n//    (SELECT 1 FROM domain d WHERE d.job_id = v.job_id AND d.domain = v.domain)\r\n```\r\n\r\nWhen type can't detected by value, e.g. you have `null`, no cast will be added.\r\nHowever, you can specify types explicitly:\r\n\r\n```js\r\nsql.values({field: null}).types({field: 'int'}).toString()\r\n// VALUES (null::int)\r\n```\r\n\r\n## ILIKE\r\n\r\n`ILIKE` is a case insensitive `LIKE` statement\r\n\r\n```js\r\nsql.select(\"text\").from(\"example\").where(sql.ilike(\"text\", \"%EASY%\"))\r\n// SELECT text FROM example WHERE text ILIKE '%EASY%'\r\n```\r\n\r\n## PostgreSQL Type Compatability\r\nSupports [node-postgres](https://github.com/brianc/node-postgres) `toPostgres()` conventions to format Javascript appropriately for PostgreSQL.\r\nSee [postgres-interval](https://github.com/bendrucker/postgres-interval) for an example of this pattern in action. ([index.js#L14-L22](https://github.com/bendrucker/postgres-interval/blob/master/index.js#L14-L22))\r\n\r\n\r\n## Even Harder Things\r\n\r\nPostgreSQL has lots of functions and operators so it's inpractical to support everything,\r\ninstead simple fallback is offered:\r\n\r\n```js\r\nselect().from('time_limit')\r\n        .where(sql('tsrange(start, end) @> tsrange($1, $2)', t1, t2))\r\n// SELECT * FROM time_limit\r\n// WHERE tsrange(start, end) @> tsrange($1, $2)\r\n```\r\n\r\nNote `$<number>` placeholders.\r\n","maintainers":[{"name":"suor","email":"suor.web@gmail.com"}],"time":{"modified":"2022-06-26T23:13:27.864Z","created":"2014-09-20T15:01:41.554Z","0.1.0":"2014-09-20T15:01:41.554Z","0.2.0":"2014-09-26T08:34:51.235Z","0.2.1":"2014-10-02T05:31:32.477Z","0.3.0":"2014-10-09T12:31:51.598Z","0.4.0":"2015-03-10T07:55:32.953Z","0.4.1":"2015-05-14T05:45:59.002Z","0.4.2":"2015-10-11T07:24:55.165Z","0.4.3":"2016-10-30T03:26:20.554Z","0.5.0":"2017-08-13T15:25:17.028Z","0.6.0":"2022-04-30T04:54:14.952Z"},"homepage":"https://github.com/Suor/sql-bricks-postgres","keywords":["sql","generation","generate","query","pg","postgres","builder","select","insert","update","delete"],"repository":{"type":"git","url":"git+https://github.com/Suor/sql-bricks-postgres.git"},"author":{"name":"Alexander Schepanovski","email":"suor.web@gmail.com","url":"http://hackflow.com"},"bugs":{"url":"https://github.com/Suor/sql-bricks-postgres/issues"},"license":"MIT","readmeFilename":"readme.md","contributors":[{"name":"Peter Rust","email":"peter@cornerstonenw.com"}],"users":{"zhoutk":true}}