Major version update. Refactor sql generator function. Add core select directives like SUM, MIN, MAX, etc

This commit is contained in:
2026-04-18 07:24:01 +01:00
parent 0a3320ff83
commit f3f1c42699
23 changed files with 1275 additions and 662 deletions
+42
View File
@@ -0,0 +1,42 @@
import sqlGenGrabConcatStr from "./sql-generator-grab-concat-str";
export default function sqlGenGrabSelectFieldSQL({ selectFields, append_table_names, table_name }) {
let str = "";
str += ` ${selectFields
?.map((fld) => {
let fld_str = ``;
const final_fld_name = typeof fld == "object"
? append_table_names
? `${table_name}.${String(fld)}`
: `${String(fld.fieldName)}`
: `${String(fld)}`;
if (typeof fld == "object") {
const fld_name = `${String(fld.fieldName)}`;
if (fld.count) {
fld_str += `COUNT(${fld_name})`;
if (fld.count.alias) {
fld_str += ` AS ${fld.count.alias}`;
}
}
else if (fld.sum) {
fld_str += `SUM(${fld_name}) AS ${fld.sum.alias}`;
}
else if (fld.group_concat) {
fld_str += sqlGenGrabConcatStr({
field: fld_name,
alias: fld.group_concat.alias,
separator: fld.group_concat.separator,
});
}
else {
fld_str +=
final_fld_name + (fld.alias ? ` as ${fld.alias}` : ``);
}
}
else {
fld_str += final_fld_name;
}
return fld_str;
})
.join(",")}`;
return str;
}