Home / Class/ CreateSqliteIndexConvertor Class — drizzle-orm Architecture

CreateSqliteIndexConvertor Class — drizzle-orm Architecture

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

Entity Profile

Dependency Diagram

graph TD
  01959b95_70b4_ccae_6c93_53d172a9e0cc["CreateSqliteIndexConvertor"]
  fe4174c7_3b9c_5b26_98a0_b2395ca21939["sqlgenerator.ts"]
  01959b95_70b4_ccae_6c93_53d172a9e0cc -->|defined in| fe4174c7_3b9c_5b26_98a0_b2395ca21939
  9db980fc_1514_4b45_7bd8_456b2c8432e7["can()"]
  01959b95_70b4_ccae_6c93_53d172a9e0cc -->|method| 9db980fc_1514_4b45_7bd8_456b2c8432e7
  a68c9525_35a2_06ea_47c5_2757768f9f03["convert()"]
  01959b95_70b4_ccae_6c93_53d172a9e0cc -->|method| a68c9525_35a2_06ea_47c5_2757768f9f03

Relationship Graph

Source Code

drizzle-kit/src/sqlgenerator.ts lines 3605–3629

export class CreateSqliteIndexConvertor extends Convertor {
	can(statement: JsonStatement, dialect: Dialect): boolean {
		return statement.type === 'create_index' && (dialect === 'sqlite' || dialect === 'turso');
	}

	convert(statement: JsonCreateIndexStatement): string {
		// should be changed
		const { name, columns, isUnique, where } = SQLiteSquasher.unsquashIdx(
			statement.data,
		);
		// // since postgresql 9.5
		const indexPart = isUnique ? 'UNIQUE INDEX' : 'INDEX';
		const whereStatement = where ? ` WHERE ${where}` : '';
		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})${whereStatement};`;
	}
}

Domain

Frequently Asked Questions

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

Analyze Your Own Codebase

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

Try Supermodel Free