From c2f531bae40881f0374e8f97103b29771e988052 Mon Sep 17 00:00:00 2001 From: Philippe PITTOLI Date: Mon, 6 May 2024 14:36:36 +0200 Subject: [PATCH] TestDB: initial commit. --- .gitignore | 5 +++++ README.md | 3 +++ shard.yml | 21 +++++++++++++++++++++ spec/spec_helper.cr | 2 ++ spec/test-db_spec.cr | 9 +++++++++ src/psql-query-one.cr | 25 +++++++++++++++++++++++++ 6 files changed, 65 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 shard.yml create mode 100644 spec/spec_helper.cr create mode 100644 spec/test-db_spec.cr create mode 100644 src/psql-query-one.cr diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0bb75ea --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/docs/ +/lib/ +/bin/ +/.shards/ +*.dwarf diff --git a/README.md b/README.md new file mode 100644 index 0000000..a0fd132 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# test-db + +Simple database tests to compare DODB to SQL (Postgres). diff --git a/shard.yml b/shard.yml new file mode 100644 index 0000000..0b21656 --- /dev/null +++ b/shard.yml @@ -0,0 +1,21 @@ +name: test-db +version: 0.1.0 + +authors: + - Philippe PITTOLI + +targets: + psql-query-one: + main: src/psql-query-one.cr +# test-db: +# main: src/test-db.cr + +dependencies: + dodb: + git: ../dodb.cr/ + pg: + github: will/crystal-pg + +crystal: '>= 1.12.1' + +license: ISC diff --git a/spec/spec_helper.cr b/spec/spec_helper.cr new file mode 100644 index 0000000..620ca1f --- /dev/null +++ b/spec/spec_helper.cr @@ -0,0 +1,2 @@ +require "spec" +require "../src/test-db" diff --git a/spec/test-db_spec.cr b/spec/test-db_spec.cr new file mode 100644 index 0000000..0a8ea92 --- /dev/null +++ b/spec/test-db_spec.cr @@ -0,0 +1,9 @@ +require "./spec_helper" + +describe Test::Db do + # TODO: Write tests + + it "works" do + false.should eq(true) + end +end diff --git a/src/psql-query-one.cr b/src/psql-query-one.cr new file mode 100644 index 0000000..831d137 --- /dev/null +++ b/src/psql-query-one.cr @@ -0,0 +1,25 @@ +require "db" +require "pg" + +nb_run = ARGV[1].to_i rescue 1000 + +DB.open(ENV["DATABASE_URL"]) do |db| + i = 0 + while i < nb_run + i += 1 + t1 = Time.monotonic + data = db.query_one(ARGV[0], &.read) + t2 = Time.monotonic + elapsed_time = t2 - t1 + pp! elapsed_time, data + end +end + +# PSQL_CONNECTION_STRING = "postgres://user:pass@host:port/db_name?option1=a&option2=b" +#PSQL_CONNECTION_STRING = "postgres://coucou:LOOKATMYPASS@host:port/db_name" + +#DB.open(PSQL_CONNECTION_STRING) do |db| +# # TODO +# elapsed_time = Time.measure do +# end +#end