SingleStoreCreateTableConvertor Class — drizzle-orm Architecture
Architecture documentation for the SingleStoreCreateTableConvertor class in sqlgenerator.ts from the drizzle-orm codebase.
Entity Profile
Dependency Diagram
graph TD 513d6031_a024_c403_18b5_dfa442a67299["SingleStoreCreateTableConvertor"] fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"] 513d6031_a024_c403_18b5_dfa442a67299 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939 b1284550_852c_bf65_ae23_cf9548aa3e1e["can()"] 513d6031_a024_c403_18b5_dfa442a67299 -->|method| b1284550_852c_bf65_ae23_cf9548aa3e1e 6cc829f4_7552_f1df_945b_922fc0e8aed0["convert()"] 513d6031_a024_c403_18b5_dfa442a67299 -->|method| 6cc829f4_7552_f1df_945b_922fc0e8aed0
Relationship Graph
Source Code
drizzle-kit/src/sqlgenerator.ts lines 582–656
export class SingleStoreCreateTableConvertor extends Convertor {
can(statement: JsonStatement, dialect: Dialect): boolean {
return statement.type === 'create_table' && dialect === 'singlestore';
}
convert(st: JsonCreateTableStatement) {
const {
tableName,
columns,
schema,
compositePKs,
uniqueConstraints,
internals,
} = st;
let statement = '';
statement += `CREATE TABLE \`${tableName}\` (\n`;
for (let i = 0; i < columns.length; i++) {
const column = columns[i];
const primaryKeyStatement = column.primaryKey ? ' PRIMARY KEY' : '';
const notNullStatement = column.notNull ? ' NOT NULL' : '';
const defaultStatement = column.default !== undefined ? ` DEFAULT ${column.default}` : '';
const onUpdateStatement = column.onUpdate
? ` ON UPDATE CURRENT_TIMESTAMP`
: '';
const autoincrementStatement = column.autoincrement
? ' AUTO_INCREMENT'
: '';
const generatedStatement = column.generated
? ` GENERATED ALWAYS AS (${column.generated?.as}) ${column.generated?.type.toUpperCase()}`
: '';
statement += '\t'
+ `\`${column.name}\` ${column.type}${autoincrementStatement}${primaryKeyStatement}${notNullStatement}${defaultStatement}${onUpdateStatement}${generatedStatement}`;
statement += i === columns.length - 1 ? '' : ',\n';
}
if (typeof compositePKs !== 'undefined' && compositePKs.length > 0) {
statement += ',\n';
const compositePK = SingleStoreSquasher.unsquashPK(compositePKs[0]);
statement += `\tCONSTRAINT \`${compositePK.name}\` PRIMARY KEY(\`${compositePK.columns.join(`\`,\``)}\`)`;
}
if (
typeof uniqueConstraints !== 'undefined'
&& uniqueConstraints.length > 0
) {
for (const uniqueConstraint of uniqueConstraints) {
statement += ',\n';
const unsquashedUnique = SingleStoreSquasher.unsquashUnique(uniqueConstraint);
const uniqueString = unsquashedUnique.columns
.map((it) => {
return internals?.indexes
? internals?.indexes[unsquashedUnique.name]?.columns[it]
?.isExpression
? it
: `\`${it}\``
: `\`${it}\``;
})
.join(',');
statement += `\tCONSTRAINT \`${unsquashedUnique.name}\` UNIQUE(${uniqueString})`;
}
}
statement += `\n);`;
statement += `\n`;
return statement;
}
}
Domain
Defined In
Source
Frequently Asked Questions
What is the SingleStoreCreateTableConvertor class?
SingleStoreCreateTableConvertor is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is SingleStoreCreateTableConvertor defined?
SingleStoreCreateTableConvertor is defined in drizzle-kit/src/sqlgenerator.ts at line 582.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free