func()

in dao/feature_view_hologres_dao.go [587:621]


func (d *FeatureViewHologresDao) RowCountIds(filterExpr string) ([]string, int, error) {
	builder := sqlbuilder.PostgreSQL.NewSelectBuilder()
	builder.Select(d.primaryKeyField)
	builder.From(d.table)
	if filterExpr != "" {
		program, err := expr.Compile(filterExpr)
		if err != nil {
			return nil, 0, err
		}
		node := program.Node()
		visitor := &Visitor{}
		ast.Walk(&node, visitor)

		sqlWhere := visitor.ConvertToSql(visitor.LastNode)
		builder.Where(sqlWhere)
	}

	sql, args := builder.Build()
	fmt.Println("sql:", sql)
	rows, err := d.db.Query(sql, args...)
	if err != nil {
		return nil, 0, err
	}
	defer rows.Close()
	ids := make([]string, 0, 1024)
	for rows.Next() {
		var id string
		if err := rows.Scan(&id); err != nil {
			return nil, 0, err
		} else {
			ids = append(ids, id)
		}
	}
	return ids, len(ids), nil
}