// @ts-check /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** * # Generate SQL text for Field */ export default function generateColumnDescription({ columnData, primaryKeySet, }: { columnData: import("../types").DSQL_FieldSchemaType; primaryKeySet?: boolean; }): { fieldEntryText: string; newPrimaryKeySet: boolean } { /** * Format tableInfoArray * * @description Format tableInfoArray */ const { fieldName, dataType, nullValue, primaryKey, autoIncrement, defaultValue, defaultValueLiteral, notNullValue, } = columnData; let fieldEntryText = ""; fieldEntryText += `\`${fieldName}\` ${dataType}`; //////////////////////////////////////// if (nullValue) { fieldEntryText += " DEFAULT NULL"; } else if (defaultValueLiteral) { fieldEntryText += ` DEFAULT ${defaultValueLiteral}`; } else if (defaultValue) { fieldEntryText += ` DEFAULT '${defaultValue}'`; } else if (notNullValue) { fieldEntryText += ` NOT NULL`; } //////////////////////////////////////// if (primaryKey && !primaryKeySet) { fieldEntryText += " PRIMARY KEY"; primaryKeySet = true; } //////////////////////////////////////// if (autoIncrement) { fieldEntryText += " AUTO_INCREMENT"; primaryKeySet = true; } //////////////////////////////////////// //////////////////////////////////////// //////////////////////////////////////// return { fieldEntryText, newPrimaryKeySet: primaryKeySet || false }; } /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */ /** ****************************************************************************** */