Last active
January 7, 2024 19:37
-
-
Save gamefreak/4f663343da8b92a98c2a8f87bc7d5e51 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const Sequelize = require('sequelize'); | |
function doQuery(connection, parts, ...args) { | |
let sqlString = parts[0]; | |
for (let i = 1; i < parts.length; i++) { | |
sqlString += ' $' + i + ' ' + parts[i]; | |
} | |
return connection.query(sqlString, { | |
bind: args | |
}); | |
} | |
(async () => { | |
const connection = new Sequelize('sqlite::memory:'); | |
const QUERY = doQuery.bind(undefined, connection); | |
await QUERY`CREATE TABLE foo(a NUMBER, b NUMBER, c NUMBER)`; | |
for (let i = 0; i < 10; i++) { | |
await QUERY`INSERT INTO foo VALUES(${3*i}, ${3*i+1}, ${3*i+2})`; | |
} | |
for (let mod = 1; mod < 5; mod++) { | |
console.log('mod ', mod); | |
let res = await QUERY`SELECT * FROM foo WHERE a % ${mod} = 0`; | |
console.log(res); | |
console.log(); | |
} | |
})(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
node .\main.js | |
Executing (default): CREATE TABLE foo(a NUMBER, b NUMBER, c NUMBER) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
Executing (default): INSERT INTO foo VALUES( $1 , $2 , $3 ) | |
mod 1 | |
Executing (default): SELECT * FROM foo WHERE a % $1 = 0 | |
[ | |
[ | |
{ a: 0, b: 1, c: 2 }, | |
{ a: 3, b: 4, c: 5 }, | |
{ a: 6, b: 7, c: 8 }, | |
{ a: 9, b: 10, c: 11 }, | |
{ a: 12, b: 13, c: 14 }, | |
{ a: 15, b: 16, c: 17 }, | |
{ a: 18, b: 19, c: 20 }, | |
{ a: 21, b: 22, c: 23 }, | |
{ a: 24, b: 25, c: 26 }, | |
{ a: 27, b: 28, c: 29 } | |
], | |
Statement {} | |
] | |
mod 2 | |
Executing (default): SELECT * FROM foo WHERE a % $1 = 0 | |
[ | |
[ | |
{ a: 0, b: 1, c: 2 }, | |
{ a: 6, b: 7, c: 8 }, | |
{ a: 12, b: 13, c: 14 }, | |
{ a: 18, b: 19, c: 20 }, | |
{ a: 24, b: 25, c: 26 } | |
], | |
Statement {} | |
] | |
mod 3 | |
Executing (default): SELECT * FROM foo WHERE a % $1 = 0 | |
[ | |
[ | |
{ a: 0, b: 1, c: 2 }, | |
{ a: 3, b: 4, c: 5 }, | |
{ a: 6, b: 7, c: 8 }, | |
{ a: 9, b: 10, c: 11 }, | |
{ a: 12, b: 13, c: 14 }, | |
{ a: 15, b: 16, c: 17 }, | |
{ a: 18, b: 19, c: 20 }, | |
{ a: 21, b: 22, c: 23 }, | |
{ a: 24, b: 25, c: 26 }, | |
{ a: 27, b: 28, c: 29 } | |
], | |
Statement {} | |
] | |
mod 4 | |
Executing (default): SELECT * FROM foo WHERE a % $1 = 0 | |
[ | |
[ | |
{ a: 0, b: 1, c: 2 }, | |
{ a: 12, b: 13, c: 14 }, | |
{ a: 24, b: 25, c: 26 } | |
], | |
Statement {} | |
] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment