Skip to content

Commit 79da3c4

Browse files
committed
Improved DEBUG_SQL
1 parent 1075c96 commit 79da3c4

File tree

11 files changed

+131
-3
lines changed

11 files changed

+131
-3
lines changed

my-postgres-core/src/connection/postgres_connect_inner.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,6 @@ impl PostgresConnectionInner {
249249
ctx: &crate::RequestContext,
250250
) -> Result<u64, MyPostgresError> {
251251
let mut start_connection = false;
252-
let is_debug = std::env::var("DEBUG").is_ok();
253252
let mut sw = StopWatch::new();
254253
sw.start();
255254
loop {
@@ -266,7 +265,7 @@ impl PostgresConnectionInner {
266265

267266
let execution = connection_access.execute(&sql.sql, params.as_slice());
268267

269-
if is_debug {
268+
if ctx.is_debug {
270269
println!("Executing SQL: {}", &sql.sql);
271270
}
272271

@@ -276,7 +275,7 @@ impl PostgresConnectionInner {
276275

277276
match result {
278277
Ok(result) => {
279-
if is_debug {
278+
if ctx.is_debug {
280279
sw.pause();
281280
println!(
282281
"SQL: {} executed in {}",

my-postgres-core/src/connection_sql_operations.rs

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ impl PostgresConnection {
2323
entity: &TEntity,
2424
table_name: &str,
2525
sql_request_timeout: Duration,
26+
is_debug: bool,
2627
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
2728
) -> Result<u64, MyPostgresError> {
2829
let mut sql_data =
@@ -34,6 +35,7 @@ impl PostgresConnection {
3435
let ctx = RequestContext::new(
3536
sql_request_timeout,
3637
process_name,
38+
is_debug,
3739
#[cfg(feature = "with-logs-and-telemetry")]
3840
telemetry_context,
3941
);
@@ -46,6 +48,7 @@ impl PostgresConnection {
4648
table_name: &str,
4749
where_model: Option<&TWhereModel>,
4850
sql_request_timeout: Duration,
51+
is_debug: bool,
4952
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
5053
) -> Result<Option<TResult>, MyPostgresError> {
5154
let mut sql = String::new();
@@ -69,6 +72,7 @@ impl PostgresConnection {
6972
let ctx = RequestContext::new(
7073
sql_request_timeout,
7174
format!("SELECT COUNT(*) FROM {}...", table_name),
75+
is_debug,
7276
#[cfg(feature = "with-logs-and-telemetry")]
7377
telemetry_context,
7478
);
@@ -92,6 +96,7 @@ impl PostgresConnection {
9296
table_name: &str,
9397
where_model: Option<&TWhereModel>,
9498
sql_request_timeout: Duration,
99+
is_debug: bool,
95100
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
96101
) -> Result<Option<TEntity>, MyPostgresError> {
97102
let select_builder = SelectBuilder::from_select_model::<TEntity>();
@@ -101,6 +106,7 @@ impl PostgresConnection {
101106
let ctx = RequestContext::new(
102107
sql_request_timeout,
103108
format!("query_single_row from {}", table_name),
109+
is_debug,
104110
#[cfg(feature = "with-logs-and-telemetry")]
105111
telemetry_context,
106112
);
@@ -126,6 +132,7 @@ impl PostgresConnection {
126132
where_model: Option<&TWhereModel>,
127133
post_processing: &TPostProcessing,
128134
sql_request_timeout: Duration,
135+
is_debug: bool,
129136
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
130137
) -> Result<Option<TEntity>, MyPostgresError> {
131138
let select_builder = SelectBuilder::from_select_model::<TEntity>();
@@ -137,6 +144,7 @@ impl PostgresConnection {
137144
let ctx = RequestContext::new(
138145
sql_request_timeout,
139146
format!("query_single_row_with_processing from {}", table_name),
147+
is_debug,
140148
#[cfg(feature = "with-logs-and-telemetry")]
141149
telemetry_context,
142150
);
@@ -160,6 +168,7 @@ impl PostgresConnection {
160168
table_name: &str,
161169
where_model: Option<&TWhereModel>,
162170
sql_request_timeout: Duration,
171+
is_debug: bool,
163172
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
164173
) -> Result<Vec<TEntity>, MyPostgresError> {
165174
let select_builder = SelectBuilder::from_select_model::<TEntity>();
@@ -169,6 +178,7 @@ impl PostgresConnection {
169178
let ctx = RequestContext::new(
170179
sql_request_timeout,
171180
format!("query_rows from {}", table_name),
181+
is_debug,
172182
#[cfg(feature = "with-logs-and-telemetry")]
173183
telemetry_context,
174184
);
@@ -185,6 +195,7 @@ impl PostgresConnection {
185195
table_name: &str,
186196
where_model: Option<&TWhereModel>,
187197
sql_request_timeout: Duration,
198+
is_debug: bool,
188199
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
189200
) -> Result<PostgresReadStream<TEntity>, MyPostgresError> {
190201
let select_builder = SelectBuilder::from_select_model::<TEntity>();
@@ -194,6 +205,7 @@ impl PostgresConnection {
194205
let ctx = RequestContext::new(
195206
sql_request_timeout,
196207
format!("query_rows_as_stream from {}", table_name),
208+
is_debug,
197209
#[cfg(feature = "with-logs-and-telemetry")]
198210
telemetry_context,
199211
);
@@ -211,6 +223,7 @@ impl PostgresConnection {
211223
where_model: Option<&TWhereModel>,
212224
post_processing: &TPostProcessing,
213225
sql_request_timeout: Duration,
226+
is_debug: bool,
214227
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
215228
) -> Result<Vec<TEntity>, MyPostgresError> {
216229
let select_builder = SelectBuilder::from_select_model::<TEntity>();
@@ -222,6 +235,7 @@ impl PostgresConnection {
222235
let ctx = RequestContext::new(
223236
sql_request_timeout,
224237
format!("query_rows_with_processing from {}", table_name),
238+
is_debug,
225239
#[cfg(feature = "with-logs-and-telemetry")]
226240
telemetry_context,
227241
);
@@ -240,13 +254,15 @@ impl PostgresConnection {
240254
sql_builder: &BulkSelectBuilder<TIn>,
241255
transform: &TTransform,
242256
sql_request_timeout: Duration,
257+
is_debug: bool,
243258
#[cfg(feature = "with-logs-and-telemetry")] ctx: Option<&MyTelemetryContext>,
244259
) -> Result<Vec<TOut>, MyPostgresError> {
245260
let sql = sql_builder.build_sql::<TEntity>();
246261

247262
let ctx = RequestContext::new(
248263
sql_request_timeout,
249264
format!("BulkQueryRows: {}", sql_builder.table_name),
265+
is_debug,
250266
#[cfg(feature = "with-logs-and-telemetry")]
251267
ctx,
252268
);
@@ -280,6 +296,7 @@ impl PostgresConnection {
280296
entities: &[TEntity],
281297
table_name: &str,
282298
sql_request_timeout: Duration,
299+
is_debug: bool,
283300
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
284301
) -> Result<(), MyPostgresError> {
285302
if entities.len() == 0 {
@@ -293,6 +310,7 @@ impl PostgresConnection {
293310
let ctx = RequestContext::new(
294311
sql_request_timeout,
295312
format!("bulk_insert_db_entities into table {}", table_name),
313+
is_debug,
296314
#[cfg(feature = "with-logs-and-telemetry")]
297315
telemetry_context,
298316
);
@@ -307,6 +325,7 @@ impl PostgresConnection {
307325
table_name: &str,
308326
entities: &[TEntity],
309327
sql_request_timeout: Duration,
328+
is_debug: bool,
310329
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
311330
) -> Result<(), MyPostgresError> {
312331
if entities.len() == 0 {
@@ -325,6 +344,7 @@ impl PostgresConnection {
325344
"bulk_insert_db_entities_if_not_exists into table {}",
326345
table_name
327346
),
347+
is_debug,
328348
#[cfg(feature = "with-logs-and-telemetry")]
329349
telemetry_context,
330350
);
@@ -340,6 +360,7 @@ impl PostgresConnection {
340360
update_conflict_type: &UpdateConflictType<'s>,
341361
entities: &[TEntity],
342362
sql_request_timeout: Duration,
363+
is_debug: bool,
343364
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
344365
) -> Result<(), MyPostgresError> {
345366
{
@@ -365,6 +386,7 @@ impl PostgresConnection {
365386
let ctx = RequestContext::new(
366387
sql_request_timeout,
367388
format!("bulk_insert_or_update_db_entity into table {}", table_name,),
389+
is_debug,
368390
#[cfg(feature = "with-logs-and-telemetry")]
369391
telemetry_context,
370392
);
@@ -380,6 +402,7 @@ impl PostgresConnection {
380402
update_conflict_type: &UpdateConflictType<'s>,
381403
entity: &TEntity,
382404
sql_request_timeout: Duration,
405+
is_debug: bool,
383406
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
384407
) -> Result<(), MyPostgresError> {
385408
let sql_data =
@@ -388,6 +411,7 @@ impl PostgresConnection {
388411
let ctx = RequestContext::new(
389412
sql_request_timeout,
390413
format!("insert_or_update_db_entity into table {}", table_name),
414+
is_debug,
391415
#[cfg(feature = "with-logs-and-telemetry")]
392416
telemetry_context,
393417
);
@@ -402,13 +426,15 @@ impl PostgresConnection {
402426
table_name: &str,
403427
where_model: &TWhereModel,
404428
sql_request_timeout: Duration,
429+
is_debug: bool,
405430
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
406431
) -> Result<(), MyPostgresError> {
407432
let sql_data = where_model.build_delete_sql(table_name);
408433

409434
let ctx = RequestContext::new(
410435
sql_request_timeout,
411436
format!("Delete from {}", table_name),
437+
is_debug,
412438
#[cfg(feature = "with-logs-and-telemetry")]
413439
telemetry_context,
414440
);
@@ -423,13 +449,15 @@ impl PostgresConnection {
423449
table_name: &str,
424450
entities: &[TEntity],
425451
sql_request_timeout: Duration,
452+
is_debug: bool,
426453
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
427454
) -> Result<(), MyPostgresError> {
428455
let sql_data = TEntity::build_bulk_delete_sql(entities, table_name);
429456

430457
let ctx = RequestContext::new(
431458
sql_request_timeout,
432459
format!("bulk_delete from table {}", table_name),
460+
is_debug,
433461
#[cfg(feature = "with-logs-and-telemetry")]
434462
telemetry_context,
435463
);
@@ -444,13 +472,15 @@ impl PostgresConnection {
444472
entity: &TEntity,
445473
table_name: &str,
446474
sql_request_timeout: Duration,
475+
is_debug: bool,
447476
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
448477
) -> Result<u64, MyPostgresError> {
449478
let sql_data = crate::sql::build_update_sql(entity, table_name);
450479

451480
let ctx = RequestContext::new(
452481
sql_request_timeout,
453482
format!("update_db_entity into table {}", table_name),
483+
is_debug,
454484
#[cfg(feature = "with-logs-and-telemetry")]
455485
telemetry_context,
456486
);
@@ -466,6 +496,7 @@ impl PostgresConnection {
466496
table_name: &str,
467497
where_models: Vec<TWhereModel>,
468498
sql_request_timeout: Duration,
499+
is_debug: bool,
469500
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
470501
) -> Result<Vec<UnionModel<TEntity, TWhereModel>>, MyPostgresError> {
471502
let mut sql = String::new();
@@ -483,6 +514,7 @@ impl PostgresConnection {
483514
let ctx = RequestContext::new(
484515
sql_request_timeout,
485516
format!("Bulk query with union {}", table_name),
517+
is_debug,
486518
#[cfg(feature = "with-logs-and-telemetry")]
487519
telemetry_context,
488520
);
@@ -516,6 +548,7 @@ impl PostgresConnection {
516548
where_models: Vec<TWhereModel>,
517549
transformation: &impl Fn(TEntity) -> TOut,
518550
sql_request_timeout: Duration,
551+
is_debug: bool,
519552
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
520553
) -> Result<Vec<UnionModel<TOut, TWhereModel>>, MyPostgresError> {
521554
let mut sql = String::new();
@@ -533,6 +566,7 @@ impl PostgresConnection {
533566
let ctx = RequestContext::new(
534567
sql_request_timeout,
535568
format!("bulk_query_with_transformation {}", table_name),
569+
is_debug,
536570
#[cfg(feature = "with-logs-and-telemetry")]
537571
telemetry_context,
538572
);
@@ -561,13 +595,15 @@ impl PostgresConnection {
561595
entity: &TEntity,
562596
table_name: &str,
563597
sql_request_timeout: Duration,
598+
is_debug: bool,
564599
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
565600
) -> Result<u64, MyPostgresError> {
566601
let sql = crate::sql::build_insert_sql(entity, table_name, &mut UsedColumns::as_none());
567602

568603
let ctx = RequestContext::new(
569604
sql_request_timeout,
570605
format!("insert_db_entity into table {}", table_name),
606+
is_debug,
571607
#[cfg(feature = "with-logs-and-telemetry")]
572608
telemetry_context,
573609
);
@@ -586,6 +622,7 @@ impl PostgresConnection {
586622
crate_new_model: &impl Fn() -> Option<TModel>,
587623
update_model: &impl Fn(&mut TModel) -> bool,
588624
sql_request_timeout: Duration,
625+
is_debug: bool,
589626
#[cfg(feature = "with-logs-and-telemetry")] telemetry_context: Option<&MyTelemetryContext>,
590627
) -> Result<ConcurrentOperationResult<TModel>, MyPostgresError> {
591628
loop {
@@ -594,6 +631,7 @@ impl PostgresConnection {
594631
table_name,
595632
Some(where_model),
596633
sql_request_timeout,
634+
is_debug,
597635
#[cfg(feature = "with-logs-and-telemetry")]
598636
telemetry_context,
599637
)
@@ -607,6 +645,7 @@ impl PostgresConnection {
607645
found_model,
608646
table_name,
609647
sql_request_timeout,
648+
is_debug,
610649
#[cfg(feature = "with-logs-and-telemetry")]
611650
telemetry_context,
612651
)
@@ -632,6 +671,7 @@ impl PostgresConnection {
632671
new_model_to_save,
633672
table_name,
634673
sql_request_timeout,
674+
is_debug,
635675
#[cfg(feature = "with-logs-and-telemetry")]
636676
telemetry_context,
637677
)

my-postgres-core/src/lib.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,25 @@ pub use postgres_telemetry::*;
4646
pub extern crate tokio_postgres;
4747

4848
const POSTGRES_DEFAULT_PORT: u16 = 5432;
49+
50+
fn is_debug(table_name: &str, operation: &str) -> bool {
51+
if let Ok(debug_value) = std::env::var("DEBUG_SQL") {
52+
if debug_value.eq_ignore_ascii_case("true") {
53+
return true;
54+
}
55+
56+
if debug_value == "1" {
57+
return true;
58+
}
59+
60+
if debug_value == table_name {
61+
return true;
62+
}
63+
64+
if debug_value == operation {
65+
return true;
66+
}
67+
}
68+
69+
false
70+
}

0 commit comments

Comments
 (0)