Skip to content

Instantly share code, notes, and snippets.

@litvol
litvol / Neo4j.md
Created April 11, 2022 09:18 — forked from Alexflex/Neo4j.md
Neo4j
@litvol
litvol / pgex.md
Created April 7, 2022 20:43 — forked from akrisanov/pgex.md
Postgres Intro Exercises

Postgres Intro Exercises

Простые запросы

Задача #1

Кто летел позавчера рейсом Москва (SVO) — Новосибирск (OVB) на месте 1A, и когда он забронировал свой билет?

select t.passenger_name,
import pandas as pd
stock = pd.read_csv('/datasets/stock_upd.csv')
stock['item_lowercase'] = stock['item'].str.lower()
apple = stock[stock['item_lowercase'].str.contains('apple')]['count'].sum()
samsung = stock[stock['item_lowercase'].str.contains('samsung')]['count'].sum()
stock['item_lowercase'] = stock['item_lowercase'].drop_duplicates()
stock = stock.dropna().reset_index(drop=True)
@litvol
litvol / non-partitioned.sql
Created March 27, 2022 12:09 — forked from josephnhopkins/non-partitioned.sql
Get partition, filegroup, file, row_count data for specific non-partitioned table.
SELECT
STUFF
(
(
SELECT '-> ' + physical_name AS 'data()'
FROM sys.database_files dbfiles
WHERE fg.data_space_id = dbfiles.data_space_id
FOR XML PATH(''), TYPE
).value('.', 'VARCHAR(MAX)'), 1, 2, ''
) as files_partition_could_be_in,
version: '3.1'
services:
database:
image: "postgres"
restart: "always"
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=db
def nested_loop_join(left: List[dict], right: List[dict], on: str, how: str) -> List[dict]:
""" Nested loop JOIN strategy: For every row in outer, find matching one in inner
If left/right JOIN and there's no match on inner, return outer. Else, skip
Params:
left (list<dict>) - List of dicts representing one relation
right (list<dict>) - List of dicts representing the other relation
on (string) - The key in the relations to JOIN on
how (string) - The JOIN (left, right, inner)
class Parser(self):
def advance(self):
""" Advance the tokens in use
"""
self.current_token, self.next_token = self.next_token, next(self.tokens, None)
def accept(self, expected, raise_err = True):
""" Helper function to check if the next token is what we expect
import re
keywords = r"(SELECT|WHERE|FROM|AND|OR|NOT)"
patterns = [
(keywords, lambda scanner, token: {"token_type": "keyword", "token": token}),
(r"[a-zA-Z_][a-zA-Z_0-9]*", lambda s, t: {"token_type": "name", "token": t}),
(r"\*", lambda s, t: {"token_type": "all_cols","token": t}),
(r">=|>|<=|<|=", lambda s, t: {"token_type": "operator","token": t}),
(r"[-+]?\d*\.\d+", lambda s, t: {"token_type": "float","token": t}),
(r"\d+", lambda s, t: {"token_type": "integer","token": t}),