MCPcopy Create free account
hub / github.com/NobleMajo/al-sql / selectQuery

Method selectQuery

src/pg.ts:396–426  ·  view source on GitHub ↗
(
        table: SqlTable,
        select: SqlResultColumnSelector = null,
        where?: SqlCondition,
        limit?: number | undefined,
        ...joins: SqlJoin[]
    )

Source from the content-addressed store, hash-verified

394 }
395
396 selectQuery(
397 table: SqlTable,
398 select: SqlResultColumnSelector = null,
399 where?: SqlCondition,
400 limit?: number | undefined,
401 ...joins: SqlJoin[]
402 ): ExecutableSqlQuery {
403 let line = `SELECT ${this.createSelectQuery(select)}`
404 line += ` FROM "${table.name}"`
405 if (joins && joins.length > 0) {
406 joins.forEach((join) => {
407 const tableName: string = join.as ? join.as : join.targetTable
408 line += ` ${join.join ?? "INNER"} JOIN "${join.targetTable}"${join.as ? " " + join.as : ""}`
409 line += ` ON "${tableName}".${join.targetKey} = "${join.sourceTable ?? table.name}".${join.sourceKey}`
410 })
411 }
412 let values: any[] = []
413 if (where && Object.keys(where).length > 0) {
414 let i: [number] = [1]
415 const whereData = this.createSqlWhereCondition(table.name, where, i)
416 line += ` WHERE ${whereData[0]}`
417 values = whereData.slice(1)
418 }
419 if (limit && limit > 0) {
420 line += " LIMIT " + limit
421 }
422 return [
423 line,
424 ...values
425 ]
426 }
427
428 deleteQuery(
429 table: SqlTable,

Callers

nothing calls this directly

Calls 2

createSelectQueryMethod · 0.95

Tested by

no test coverage detected