toPgSql method
Implementation
String toPgSql({
required String tableName,
bool ifNotExists = false,
}) {
var out = '';
var uniqueStr = isUnique ? ' UNIQUE' : '';
var elementStrs = elements.map((e) => '"${e.definition}"');
var ifNotExistsStr = ifNotExists ? ' IF NOT EXISTS' : '';
String distanceStr = '';
String pgvectorParams = '';
if (type == 'hnsw' || type == 'ivfflat') {
var prefix = vectorColumnType?.name;
distanceStr = ' ${vectorDistanceFunction!.asDistanceFunction(prefix!)}';
var paramStrings = parameters?.entries.map((e) => '${e.key}=${e.value}');
pgvectorParams = (paramStrings?.isNotEmpty == true)
? ' WITH (${paramStrings!.join(', ')})'
: '';
}
out += 'CREATE$uniqueStr INDEX$ifNotExistsStr "$indexName" ON "$tableName" '
'USING $type (${elementStrs.join(', ')}$distanceStr)$pgvectorParams;\n';
return out;
}