Home / Class/ SingleStoreRecreateTableConvertor Class — drizzle-orm Architecture

SingleStoreRecreateTableConvertor Class — drizzle-orm Architecture

Architecture documentation for the SingleStoreRecreateTableConvertor class in sqlgenerator.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  8f2622cf_5613_3c78_7014_a46734d24d18["SingleStoreRecreateTableConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  8f2622cf_5613_3c78_7014_a46734d24d18 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  33fc0a31_8425_a735_af65_052bbf1d2765["can()"]
  8f2622cf_5613_3c78_7014_a46734d24d18 -->|method| 33fc0a31_8425_a735_af65_052bbf1d2765
  afef3f28_48b0_2eb9_5ab5_bcda9cf9d001["convert()"]
  8f2622cf_5613_3c78_7014_a46734d24d18 -->|method| afef3f28_48b0_2eb9_5ab5_bcda9cf9d001

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 3896–3951

class SingleStoreRecreateTableConvertor extends Convertor {
	can(statement: JsonStatement, dialect: Dialect): boolean {
		return (
			statement.type === 'singlestore_recreate_table'
			&& dialect === 'singlestore'
		);
	}

	convert(statement: JsonRecreateSingleStoreTableStatement): string[] {
		const { tableName, columns, compositePKs, uniqueConstraints } = statement;

		const columnNames = columns.map((it) => `\`${it.name}\``).join(', ');
		const newTableName = `__new_${tableName}`;

		const sqlStatements: string[] = [];

		// create new table
		sqlStatements.push(
			new SingleStoreCreateTableConvertor().convert({
				type: 'create_table',
				tableName: newTableName,
				columns,
				compositePKs,
				uniqueConstraints,
				schema: '',
			}),
		);

		// migrate data
		sqlStatements.push(
			`INSERT INTO \`${newTableName}\`(${columnNames}) SELECT ${columnNames} FROM \`${tableName}\`;`,
		);

		// drop table
		sqlStatements.push(
			new SingleStoreDropTableConvertor().convert({
				type: 'drop_table',
				tableName: tableName,
				schema: '',
			}),
		);

		// rename table
		sqlStatements.push(
			new SingleStoreRenameTableConvertor().convert({
				fromSchema: '',
				tableNameFrom: newTableName,
				tableNameTo: tableName,
				toSchema: '',
				type: 'rename_table',
			}),
		);

		return sqlStatements;
	}
}

Domain

Frequently Asked Questions

What is the SingleStoreRecreateTableConvertor class?
SingleStoreRecreateTableConvertor is a class in the drizzle-orm codebase, defined in drizzle-kit/src/sqlgenerator.ts.
Where is SingleStoreRecreateTableConvertor defined?
SingleStoreRecreateTableConvertor is defined in drizzle-kit/src/sqlgenerator.ts at line 3896.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free