From 30e3841714c3c2bc01904b0bbef87d149089d366 Mon Sep 17 00:00:00 2001 From: Pavel Date: Sat, 16 Mar 2024 22:56:08 +0300 Subject: [PATCH] update sqlc gen --- dal/db_query/queries.sql | 22 +++++++++++----------- dal/sqlcgen/queries.sql.go | 31 ++++++++++++++++--------------- 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/dal/db_query/queries.sql b/dal/db_query/queries.sql index 6b0e890..0b88933 100644 --- a/dal/db_query/queries.sql +++ b/dal/db_query/queries.sql @@ -390,11 +390,11 @@ FROM WITH TimeBucket AS ( SELECT CASE - WHEN EXTRACT(epoch FROM to_timestamp($2)) - EXTRACT(epoch FROM to_timestamp($1)) > 172800 THEN date_trunc('day', to_timestamp(time_bucket)) - ELSE date_trunc('hour', to_timestamp(time_bucket)) + WHEN EXTRACT(epoch FROM $2::timestamp) - EXTRACT(epoch FROM $1::timestamp) > 172800 THEN date_trunc('day', timestamp_bucket) + ELSE date_trunc('hour', timestamp_bucket) END AS time_interval FROM - generate_series(EXTRACT(epoch FROM to_timestamp($1)), EXTRACT(epoch FROM to_timestamp($2)), 3600) AS time_bucket + generate_series($1::timestamp, $2::timestamp, '1 hour'::interval) AS timestamp_bucket ), OpenStats AS ( SELECT @@ -410,8 +410,8 @@ WITH TimeBucket AS ( WHERE answer.quiz_id = $3 AND start = TRUE - AND created_at >= to_timestamp($1) - AND created_at <= to_timestamp($2) + AND created_at >= $1::timestamp + AND created_at <= $2::timestamp GROUP BY session ) AS first_starts @@ -434,8 +434,8 @@ WITH TimeBucket AS ( WHERE answer.quiz_id = $3 AND result = TRUE - AND created_at >= to_timestamp($1) - AND created_at <= to_timestamp($2) + AND created_at >= $1::timestamp + AND created_at <= $2::timestamp GROUP BY session ) AS first_results @@ -458,20 +458,20 @@ WITH TimeBucket AS ( a.quiz_id = $3 AND a.result = TRUE AND b.start = TRUE - AND a.created_at >= to_timestamp($1) - AND a.created_at <= to_timestamp($2) + AND a.created_at >= $1::timestamp + AND a.created_at <= $2::timestamp GROUP BY tb.time_interval ) SELECT - to_timestamp(tb.time_interval) AS time_bucket, + tb.time_interval AS time_bucket, COALESCE(os.open_count, 0) AS open_count, COALESCE(rs.result_count, 0) AS result_count, COALESCE(at.avg_time, 0) AS avg_time, CASE WHEN COALESCE(os.open_count, 0) > 0 THEN COALESCE(rs.result_count, 0) / COALESCE(os.open_count, 0) ELSE 0 - END AS conversion + END AS conversion FROM TimeBucket tb LEFT JOIN diff --git a/dal/sqlcgen/queries.sql.go b/dal/sqlcgen/queries.sql.go index 0513243..d4461de 100644 --- a/dal/sqlcgen/queries.sql.go +++ b/dal/sqlcgen/queries.sql.go @@ -8,6 +8,7 @@ package sqlcgen import ( "context" "database/sql" + "time" "github.com/google/uuid" "github.com/lib/pq" @@ -492,11 +493,11 @@ const generalStatistics = `-- name: GeneralStatistics :many WITH TimeBucket AS ( SELECT CASE - WHEN EXTRACT(epoch FROM to_timestamp($2)) - EXTRACT(epoch FROM to_timestamp($1)) > 172800 THEN date_trunc('day', to_timestamp(time_bucket)) - ELSE date_trunc('hour', to_timestamp(time_bucket)) + WHEN EXTRACT(epoch FROM $2::timestamp) - EXTRACT(epoch FROM $1::timestamp) > 172800 THEN date_trunc('day', timestamp_bucket) + ELSE date_trunc('hour', timestamp_bucket) END AS time_interval FROM - generate_series(EXTRACT(epoch FROM to_timestamp($1)), EXTRACT(epoch FROM to_timestamp($2)), 3600) AS time_bucket + generate_series($1::timestamp, $2::timestamp, '1 hour'::interval) AS timestamp_bucket ), OpenStats AS ( SELECT @@ -512,8 +513,8 @@ WITH TimeBucket AS ( WHERE answer.quiz_id = $3 AND start = TRUE - AND created_at >= to_timestamp($1) - AND created_at <= to_timestamp($2) + AND created_at >= $1::timestamp + AND created_at <= $2::timestamp GROUP BY session ) AS first_starts @@ -536,8 +537,8 @@ WITH TimeBucket AS ( WHERE answer.quiz_id = $3 AND result = TRUE - AND created_at >= to_timestamp($1) - AND created_at <= to_timestamp($2) + AND created_at >= $1::timestamp + AND created_at <= $2::timestamp GROUP BY session ) AS first_results @@ -560,20 +561,20 @@ WITH TimeBucket AS ( a.quiz_id = $3 AND a.result = TRUE AND b.start = TRUE - AND a.created_at >= to_timestamp($1) - AND a.created_at <= to_timestamp($2) + AND a.created_at >= $1::timestamp + AND a.created_at <= $2::timestamp GROUP BY tb.time_interval ) SELECT - to_timestamp(tb.time_interval) AS time_bucket, + tb.time_interval AS time_bucket, COALESCE(os.open_count, 0) AS open_count, COALESCE(rs.result_count, 0) AS result_count, COALESCE(at.avg_time, 0) AS avg_time, CASE WHEN COALESCE(os.open_count, 0) > 0 THEN COALESCE(rs.result_count, 0) / COALESCE(os.open_count, 0) ELSE 0 - END AS conversion + END AS conversion FROM TimeBucket tb LEFT JOIN @@ -585,9 +586,9 @@ FROM ` type GeneralStatisticsParams struct { - ToTimestamp float64 `db:"to_timestamp" json:"to_timestamp"` - ToTimestamp_2 float64 `db:"to_timestamp_2" json:"to_timestamp_2"` - QuizID int64 `db:"quiz_id" json:"quiz_id"` + Column1 time.Time `db:"column_1" json:"column_1"` + Column2 time.Time `db:"column_2" json:"column_2"` + QuizID int64 `db:"quiz_id" json:"quiz_id"` } type GeneralStatisticsRow struct { @@ -599,7 +600,7 @@ type GeneralStatisticsRow struct { } func (q *Queries) GeneralStatistics(ctx context.Context, arg GeneralStatisticsParams) ([]GeneralStatisticsRow, error) { - rows, err := q.db.QueryContext(ctx, generalStatistics, arg.ToTimestamp, arg.ToTimestamp_2, arg.QuizID) + rows, err := q.db.QueryContext(ctx, generalStatistics, arg.Column1, arg.Column2, arg.QuizID) if err != nil { return nil, err }