Home / Class/ CreateMySqlIndexConvertor Class — drizzle-orm Architecture

CreateMySqlIndexConvertor Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  d7aa8bdc_6355_5d86_a068_5b5077e26613["CreateMySqlIndexConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  d7aa8bdc_6355_5d86_a068_5b5077e26613 -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  975da726_2db2_d0fc_7745_82dadf258a14["can()"]
  d7aa8bdc_6355_5d86_a068_5b5077e26613 -->|method| 975da726_2db2_d0fc_7745_82dadf258a14
  fc8ed514_292f_560b_c36b_c9ff8713c3b8["convert()"]
  d7aa8bdc_6355_5d86_a068_5b5077e26613 -->|method| fc8ed514_292f_560b_c36b_c9ff8713c3b8

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 3553–3577

class CreateMySqlIndexConvertor extends Convertor {
	can(statement: JsonStatement, dialect: Dialect): boolean {
		return statement.type === 'create_index' && dialect === 'mysql';
	}

	convert(statement: JsonCreateIndexStatement): string {
		// should be changed
		const { name, columns, isUnique } = MySqlSquasher.unsquashIdx(
			statement.data,
		);
		const indexPart = isUnique ? 'UNIQUE INDEX' : 'INDEX';

		const uniqueString = columns
			.map((it) => {
				return statement.internal?.indexes
					? statement.internal?.indexes[name]?.columns[it]?.isExpression
						? it
						: `\`${it}\``
					: `\`${it}\``;
			})
			.join(',');

		return `CREATE ${indexPart} \`${name}\` ON \`${statement.tableName}\` (${uniqueString});`;
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free