Skip to content

Instantly share code, notes, and snippets.

Avatar

Dmitry Tsepelev DmitryTsepelev

View GitHub Profile
View keybase.md

Keybase proof

I hereby claim:

  • I am dmitrytsepelev on github.
  • I am dmitrytsepelev (https://keybase.io/dmitrytsepelev) on keybase.
  • I have a public key ASCvlREEdfDPEEL7a-fQeYcDJ87nLl0XS8PmY-Sk-tGQ7Qo

To claim this, I am signing this object:

@DmitryTsepelev
DmitryTsepelev / day01.go
Last active Dec 26, 2018
Advent of code 2018
View day01.go
package main
import (
"bufio"
"fmt"
"os"
"strconv"
)
func getInputData() *[]int {
@DmitryTsepelev
DmitryTsepelev / boilerplate.rb
Last active Sep 22, 2019
GraphQL field extensions
View boilerplate.rb
require "bundler/inline"
gemfile do
source "https://rubygems.org"
gem "graphql"
end
class BaseObject < GraphQL::Schema::Object
end
View Triggers.md

How to run examples:

  1. Run $ createdb railstestdb to create DB
  2. Run examples with Ruby $ ruby demo.rb
View graphql_controller.rb
class GraphqlController < ApplicationController
include EnsureHash
def execute
result = GraphqlSchema.execute(
params[:query],
variables: ensure_hash(params[:variables]),
context: context,
operation_name: params[:operationName],
)
@DmitryTsepelev
DmitryTsepelev / change_column_type.rb
Created Aug 27, 2020
How to change column type (e.g., int -> bigint) without downtime
View change_column_type.rb
ActiveRecord::Migration.remove_foreign_key(:current_table, :foreign_table) # no lock
ActiveRecord::Migration.add_column(:current_table, :column_bigint, :bigint) # no lock
copy_data = lambda do
CurrentTable.where(column_bigint: nil).where.not(column: nil).in_batches do |batch|
batch.update_all("column_bigint = column")
end
end
View 1_result.md

Setup

Results gathered from my MacBook Pro Mid 2014 (2,5 GHz Quad-Core Intel Core i7, 16 GB 1600 MHz DDR3)

GraphQL Parsing

                                   user     system      total        real
1 fields, 0 nested levels:     0.000153   0.000002   0.000155 (  0.000152)
1 fields, 2 nested levels:     0.000188   0.000001   0.000189 (  0.000187)
View 1_graphql_ruby_n_plus_one.md

How to run examples:

  1. Run $ createdb nplusonedb to create DB
  2. Run specs $ rspec demo.rb