gitextract_qyu9k5q7/ ├── .circleci/ │ └── config.yml ├── .erdconfig ├── .git-blame-ignore-revs ├── .gitignore ├── .rubocop.yml ├── .ruby-version ├── GUIDES.md ├── Gemfile ├── README.md ├── Rakefile ├── TESTING.md ├── app/ │ ├── assets/ │ │ ├── config/ │ │ │ └── manifest.js │ │ ├── images/ │ │ │ └── .keep │ │ └── stylesheets/ │ │ └── application.css │ ├── channels/ │ │ └── application_cable/ │ │ ├── channel.rb │ │ └── connection.rb │ ├── controllers/ │ │ ├── api/ │ │ │ ├── trip_requests_controller.rb │ │ │ └── trips_controller.rb │ │ ├── api_controller.rb │ │ ├── application_controller.rb │ │ ├── authentication_controller.rb │ │ └── concerns/ │ │ └── .keep │ ├── helpers/ │ │ └── application_helper.rb │ ├── javascript/ │ │ └── application.js │ ├── jobs/ │ │ └── application_job.rb │ ├── lib/ │ │ └── pgslice_helper.rb │ ├── mailers/ │ │ └── application_mailer.rb │ ├── models/ │ │ ├── application_record.rb │ │ ├── concerns/ │ │ │ └── .keep │ │ ├── driver.rb │ │ ├── fast_search_result.rb │ │ ├── location.rb │ │ ├── rider.rb │ │ ├── search_result.rb │ │ ├── trip.rb │ │ ├── trip_position.rb │ │ ├── trip_request.rb │ │ ├── user.rb │ │ ├── vehicle.rb │ │ ├── vehicle_reservation.rb │ │ └── vehicle_status.rb │ ├── queries/ │ │ └── top_drivers.sql │ ├── serializers/ │ │ ├── driver_serializer.rb │ │ └── trip_serializer.rb │ ├── services/ │ │ ├── book_reservation.rb │ │ ├── trip_creator.rb │ │ └── trip_search.rb │ └── validators/ │ ├── drivers_license_validator.rb │ └── email_validator.rb ├── bin/ │ ├── bundle │ ├── importmap │ ├── partition_conversion.sh │ ├── pgslice │ ├── rails │ ├── rails_best_practices │ ├── rake │ └── setup ├── config/ │ ├── application.rb │ ├── boot.rb │ ├── cable.yml │ ├── credentials.yml.enc │ ├── database-multiple.sample.yml │ ├── database-slow-clients.sample.yml │ ├── database.yml │ ├── environment.rb │ ├── environments/ │ │ ├── development.rb │ │ ├── production.rb │ │ └── test.rb │ ├── importmap.rb │ ├── initializers/ │ │ ├── application_controller_renderer.rb │ │ ├── assets.rb │ │ ├── backtrace_silencers.rb │ │ ├── cookies_serializer.rb │ │ ├── filter_parameter_logging.rb │ │ ├── geocoder.rb │ │ ├── inflections.rb │ │ ├── mime_types.rb │ │ ├── slow_query_subscriber.rb │ │ ├── strong_migrations.rb │ │ └── wrap_parameters.rb │ ├── locales/ │ │ └── en.yml │ ├── puma.rb │ ├── routes.rb │ └── schedule.rb ├── config.ru ├── db/ │ ├── README.md │ ├── alter_default_privileges_public.sql │ ├── alter_default_privileges_readonly.sql │ ├── alter_default_privileges_readwrite.sql │ ├── create_database.sql │ ├── create_grants_database.sql │ ├── create_grants_schema.sql │ ├── create_role_app_readonly.sql │ ├── create_role_app_user.sql │ ├── create_role_owner.sql │ ├── create_role_readonly_users.sql │ ├── create_role_readwrite_users.sql │ ├── create_schema.sql │ ├── env_vars_sample.sh │ ├── functions/ │ │ ├── scrub_email_v01.sql │ │ ├── scrub_email_v02.sql │ │ ├── scrub_text_v01.sql │ │ └── scrub_text_v02.sql │ ├── migrate/ │ │ ├── 20191107212726_create_users.rb │ │ ├── 20191108221519_create_locations.rb │ │ ├── 20191111151637_create_trip_requests.rb │ │ ├── 20191112165848_create_trips.rb │ │ ├── 20191121175429_install_blazer.rb │ │ ├── 20191203212055_add_foreign_key_constraints.rb │ │ ├── 20191203213103_validate_foreign_key_constraints.rb │ │ ├── 20200603150442_add_column_users_password_digest.rb │ │ ├── 20220711010541_add_db_comments_to_users.rb │ │ ├── 20220711015454_create_function_scrub_email.rb │ │ ├── 20220711015524_create_function_scrub_text.rb │ │ ├── 20220716020213_add_index_users_last_name.rb │ │ ├── 20220729014635_create_vehicle_reservations.rb │ │ ├── 20220729020430_create_vehicles.rb │ │ ├── 20220801140121_add_exclusion_constraint_vehicle_registrations.rb │ │ ├── 20220814175213_add_trips_count_to_users.rb │ │ ├── 20220916171314_create_search_results.rb │ │ ├── 20221007184855_create_fast_search_results.rb │ │ ├── 20221108172933_add_status_column_to_vehicles.rb │ │ ├── 20221108175321_remove_status_column_from_vehicles.rb │ │ ├── 20221108175619_add_status_column_db_enum_type_to_vehicles.rb │ │ ├── 20221110020532_add_drivers_license_number_to_users.rb │ │ ├── 20221111212740_add_trip_rating_check_constraint.rb │ │ ├── 20221111213918_validate_add_trip_rating_check_constraint.rb │ │ ├── 20221219164626_add_unique_address_to_locations.rb │ │ ├── 20221220201836_enable_extension_pg_stat_statements.rb │ │ ├── 20221221052616_change_column_trips_trip_request_id.rb │ │ ├── 20221223161403_create_trip_positions.rb │ │ ├── 20221230200725_add_unique_constraint_users_email.rb │ │ ├── 20221230203627_fix_canceled_column_default.rb │ │ ├── 20230125003531_add_searchable_full_name_to_users.rb │ │ ├── 20230125003946_add_index_searchable_full_name_to_users.rb │ │ ├── 20230126025656_remove_blazer_from_rideshare.rb │ │ ├── 20230314204931_create_trip_positions_partitioned_intermediate_table.rb │ │ ├── 20230314210022_add_trip_positions_intermediate_default_partition.rb │ │ ├── 20230619213546_add_locations_city_state.rb │ │ ├── 20230620030038_remove_unused_indexes.rb │ │ ├── 20230625151410_add_foreign_keys.rb │ │ ├── 20230711015123_add_fast_count_gem.rb │ │ ├── 20230713150550_update_function_scrub_email_to_version_2.rb │ │ ├── 20230713150710_update_function_scrub_text_to_version_2.rb │ │ ├── 20230714013609_trips_check_constraints.rb │ │ ├── 20230716174139_add_foreign_key_column_vehicle_reservations.rb │ │ ├── 20230726020548_add_not_null_trip_positions_position.rb │ │ ├── 20230925150207_add_position_to_locations.rb │ │ ├── 20230925150831_drop_locations_latitude_longitude.rb │ │ ├── 20231018153441_update_fast_search_results_to_version_2.rb │ │ ├── 20231018153712_add_unique_index_fast_search_results.rb │ │ ├── 20231208050516_drop_column_searchable_full_name.rb │ │ ├── 20231213045957_add_constraints_locations_state.rb │ │ ├── 20231218215836_remove_trip_positions_intermediate.rb │ │ └── 20231220043547_install_fast_count.rb │ ├── pgbouncer_prepared_statements_check.sh │ ├── reset.sh │ ├── revoke_drop_public_schema.sql │ ├── scripts/ │ │ ├── README.md │ │ ├── benchmark.sh │ │ ├── bulk_load.sh │ │ ├── bulk_load_extended.sh │ │ ├── list_table_comments.sh │ │ ├── queries.sql │ │ └── simulate_bloat.sh │ ├── scrubbing/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── assign_sequence.sql │ │ ├── create_tables.sql │ │ ├── drop_and_swap_users.sql │ │ ├── dump_foreign_keys_ddl_target_table.sql │ │ ├── dump_sequence_creation_ddl.sql │ │ ├── dump_views_ddl.sql │ │ ├── generate_add_constraint_statements.sql │ │ ├── scrub_batched_direct_updates.sql │ │ ├── scrub_users.sql │ │ └── scrubber.sh │ ├── setup.sh │ ├── setup_test_database.sh │ ├── structure.sql │ ├── teardown.sh │ ├── teardown_remove_default_privileges.sql │ └── views/ │ ├── fast_search_results_v01.sql │ ├── fast_search_results_v02.sql │ └── search_results_v01.sql ├── docker/ │ ├── README.md │ ├── db01_create_publication.sh │ ├── db01_create_replication_slot.sh │ ├── db01_create_replication_user.sh │ ├── db03_create_subscription.sh │ ├── db03_create_subscription_prepare.sh │ ├── dump_rideshare_local_to_db01.sh │ ├── pg_hba_reset.sh │ ├── reset_docker_instances.sh │ ├── run_db_db01_primary.sh │ ├── run_db_db02_replica.sh │ ├── run_db_db03_replica.sh │ ├── run_pg_basebackup.sh │ └── teardown_docker.sh ├── docs/ │ ├── design_document.md │ ├── dev_tips.md │ ├── development.md │ ├── development_iterations.md │ ├── project_documentation.md │ ├── search.md │ └── workshop/ │ ├── 0_introduction.md │ ├── 1_psql_basics.md │ ├── 2_shell_scripts.md │ ├── 3_query_planning.md │ ├── 4_query_optimization.md │ ├── 5_query_optimization_part_2.md │ ├── 6_macro_overview_part_1.md │ ├── 7_macro_overview_part_2.md │ ├── 8_active_record_multi-db_prep_part_1.md │ ├── 9_active_record_multi-db_roles.md │ └── README.md ├── lib/ │ ├── assets/ │ │ └── .keep │ ├── json_web_token.rb │ └── tasks/ │ ├── .keep │ ├── auto_generate_diagram.rake │ ├── benchmarks.rake │ ├── custom.rake │ ├── data_generators.rake │ ├── fake_data_generator.rake │ ├── migration_hooks.rake │ └── simulate_app_activity.rake ├── log/ │ └── .keep ├── postgresql/ │ ├── .pg_service.sample.conf │ ├── .pgpass.sample │ ├── .psqlrc.sample │ ├── README.md │ ├── pg_hba.sample.conf │ ├── pgbouncer.sample.ini │ ├── postgresql.sample.conf │ └── userlist.sample.txt ├── public/ │ ├── 404.html │ ├── 422.html │ ├── 500.html │ └── robots.txt └── test/ ├── application_system_test_case.rb ├── controllers/ │ ├── .keep │ ├── api/ │ │ ├── trip_requests_controller_test.rb │ │ └── trips_controller_test.rb │ └── authentication_controller_test.rb ├── fixtures/ │ ├── .keep │ ├── drivers.yml │ ├── files/ │ │ └── .keep │ ├── locations.yml │ ├── riders.yml │ ├── trip_requests.yml │ ├── trips.yml │ ├── vehicle_reservations.yml │ └── vehicles.yml ├── helpers/ │ └── .keep ├── mailers/ │ └── .keep ├── models/ │ ├── .keep │ ├── driver_test.rb │ ├── location_test.rb │ ├── rider_test.rb │ ├── trip_request_test.rb │ ├── trip_test.rb │ ├── user_test.rb │ ├── vehicle_reservation_test.rb │ └── vehicle_test.rb ├── services/ │ ├── book_reservation_test.rb │ ├── trip_creator_test.rb │ └── trip_search_test.rb ├── system/ │ └── .keep └── test_helper.rb