toPgSql method

String toPgSql({
  1. required String tableName,
  2. bool ifNotExists = false,
})

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;
}