// ----- общий код с генериками ---------------
type Parsers<T extends object> = Omit<{
[K in keyof T]: (str: string) => T[K];
}, 'id'>;
function setValue<T extends object>(obj: T, key: Exclude<keyof T, 'id'>, value: string, parsers: Parsers<T>): void {
obj[key] = parsers[key](value); // магия
}
// ----- конкретный кейс ---------------------
interface Todo {
id: number;
name: string;
text: string;
complete: boolean;
num: number;
}
type List = 'name' | 'text' | 'complete' | 'num';
let list: List[] = ['name', 'text', 'complete', 'num']
const parsers: Parsers<Todo> = {
complete: s => s === 'true',
name: s => s,
text: s => s,
num: s => +s
};
const data: Todo = {
id: 1,
name: '',
text: '',
complete: false,
num: 0,
}
for(let input of list) {
setValue(data, input, formData[input].value, parsers);
}
Если я правильно понял, когда мы создаем индекс, у нас таблица изменяет порядок записей внутри себя сортируя их по указанным столбцамнет, никакой порядок не меняется, индекс это отдельные от таблицы данные
И один индекс
равен тому, если бы мы создали три индекса в такой последовательностинет, перестань уже придумывать и начни читать учебники и документацию
Которые бы по очереди друг за другом добавляли правило сортировки в таблице, верно?опять ты что себе напридумал, нет никаких правил сортировки в таблице, индексы просто могут использоваться для ускорения сортировки
Причем при изменении name обновление будет происходить дольше, чем при изменении price, потому что у нас price последняя в нашей очереди индексов по сортировке?когда фантазию уже не остановить
# Игнорировать все файлы и папки в корне проекта
/*
# Не игнорировать папку src и сам этот gitignore
!/src/
!.gitignore
# Игнорировать содержимое папки controllers
/src/controllers/*
# Кроме одного файла
!/src/controllers/controller.env
# Игнорировать содержимое папки users
/src/users/*
# Кроме одного файла
!/src/users/users.env
Чтобы я мог клонировать в app отдельный репозиторий и гит всего проекта не следил за гитом этого мини-репозитория
просто само наличие папки с таким названием при клонировании
- docker-compose rm --stop --force my_service
- docker-compose pull my_service
- docker-compose up --detach --force-recreate my_service
max_connections
.=# COPY (SELECT 1, 2) TO PROGRAM 'sed -e "s/,/:/" > ~/test.txt' DELIMITER ',';
COPY 1
=# \q
$ cat ~/test.txt
1:2
=# COPY (select 1, 2) TO PROGRAM 'awk -F '','' ''{print $NF}'' > ~/test.txt' DELIMITER ',';
COPY 1
=# \q
$ cat test.txt
2