LINUX.ORG.RU

Хочу препроцессор для sql

 , ,


1

2

Чтобы заворачивать всякие вещи, которые делаются обычно копипастой ибо лицезреть эти портянки - боль.
Мне нужно:
Разворачивать конструкции вида a > 0 ? b : c до case when a > 0 then b else c end
Из конструкции во from типа # table t : fk => ext.id , ext.id2 # оставлять в from только table t и дописывать в where t.fk = ext.id and t.fk = ext.id2 (если надо отметить куда что вставлять - не страшно, если fk нет, то вставлять, например, t.id)
Макросы типа %id => func(id, 0) или a<date<b => date between a and b
Ну и простые постановки $fields = m.id, m.date, m.value
Может еще какие-то хитрые извращения, которые пока не пришли мне в голову. Думаю пилить свой но не хочу велосипедить напрасно. Если таки ничего не найдется, предлагайте на чём его писать.

★★★★★

Последнее исправление: crutch_master (всего исправлений: 4)

Ответ на: комментарий от anonymous

Тут запросы со полями из подзапросов, связанные с таблицами и подзапросами и везде подзапросы в условиях. А СУБД используется как бекенд. Мельком посмотрел - не думаю, что будет сильно лаконичнее.

crutch_master ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

Разворачивать конструкции вида a > 0 ? b : c до case when a > 0 then b else c end
не думаю, что будет сильно лаконичнее
Разворачивать

Это какое-то собственно видение «лаконичнее».

vodz ★★★★★
()
Последнее исправление: vodz (всего исправлений: 1)
Ответ на: комментарий от crutch_master

А что тебе не нравится?

Причём тут нра/ненра? Было удивительно, ибо Лакони́чность — краткое и ясное выражение мыслей. Чисто терминологический спор. Вам скорее хочется убрать лаконичность, чтобы «портянки» стали больше, менее энтропийнее.

vodz ★★★★★
()
Ответ на: комментарий от Deleted

Они на веб все заточены. Нужно что-то типа своего ЯП, чтобы как-то конструкции можно было определять.

crutch_master ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

Они на веб все заточены.

ты безнадёжен, я тебе чотким-пацанским языком написал для текста, а не для html.

Deleted
()
Ответ на: комментарий от ritsufag

Ни то ни другое. Это всё интерфейсы для ЯП, а мне нужно что-то типа инструмента для запиливания своего ЯП. Там еще куча управляющих конструкций везде, подзапросы и всякие костыли. Мне надо что-то, чтобы тупо не писать по 10 раз coalesce(table.record,0) + coalesce(table.record2,0) ...

crutch_master ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

а мне нужно что-то типа инструмента для запиливания своего ЯП

А теперь представь, как в твоём коде будет разбираться другой программист. Или, что ещё веселее, ты сам через пару лет после последнего коммита. Если только ты свой ЯП заранее тщательно задокументируешь и сумеешь потом документацию найти. Но практика показывает, что люди, склонные к тщательному документированию, обычно уже поняли, что велосипедостроение — это палка о двух концах и бьёт больно. Если ты только сумеешь свой ЯП продвинуть в качестве нового стандарта — тогда да, ты на коне.

С — сопровождаемость.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

А теперь представь, как в твоём коде будет разбираться другой программист.

Другой программист будет читать эти же портянки, если всё это не закопают раньше. А мой мегаЯП будет храниться где-нибудь скромно в уголке, да и не думаю, что у кого-то кроме меня такое будет вызывать интерес.

crutch_master ★★★★★
() автор топика
Ответ на: комментарий от Deleted

любой текстовый шаблонизатор с макросами

так посоветуй какой-нибудь

neschastnyjj86
()

Напиши свои макросы для сишного препроцессора, а потом просто cpp template.sql > sql.sql

Deleted
()
Ответ на: комментарий от Deleted

20 сообщений нафлудили, а на мой вопрос посоветовать хороший препроцессор/шаблонизатор никто так и не ответил. один че-то пернул про «любой текстовый шаблонизатор с макросами» и слился, другой вспомнил m4, третий видимо видел сишный препроцессор. на этом у всех познания заканчиваются, одни понты.

neschastnyjj86
()
Ответ на: комментарий от neschastnyjj86

одни понты.

В твоих фантазиях

хороший препроцессор/шаблонизатор

я назвал cpp

никто так и не ответил. один че-то пернул про «любой текстовый шаблонизатор с макросами» и слился

Тебе лично кто-то тут обязан ответить чётко и по делу и что бы тебе результат пришёлся по душе? Прекрати страдать хернёй и необоснованно требовать тут что либо. Как дурак себя ведёшь ей богу.

Deleted
()
Ответ на: комментарий от Deleted

Как дурак себя ведёшь

слушай ты, дурак, ничего я не требую, лишь констатировал факт - большинство тут только пукает в лужу и ничего не знает. и не указывай мне.

neschastnyjj86
()
Ответ на: комментарий от neschastnyjj86

большинство тут только пукает в лужу и ничего не знает

Обвиняешь других в «незнании» того чего сам не знаешь? Не ну правда.

ничего я не требую
а на мой вопрос посоветовать хороший препроцессор/шаблонизатор никто так и не ответил

Да ладно.

Ты обвиняешь всех и требуешь от всех что-то. Не надо так. С таким подходом на тебя будут только злиться. А на слабо и тому подобное тут брать не надо, поверь ::)

Deleted
()
Ответ на: комментарий от Deleted

В твоих фантазиях

не понял. даже вот ты - и то слишком много на себя берешь.

Обвиняешь других в «незнании» того чего сам не знаешь? Не ну правда.

не передергивай, утёнок. я обвиняю в том, что колотят понты, что мол якобы знают, а на деле сливаются.

Да ладно.

конечно, подразумевается же общего назначения, и неск. лет назад когда я искал, я обнаружил что общего назначения, развивающихся, современных и удобных нет. т.е. таких общем-то ровно один - убогий динозавр m4 (им я и пользуюсь иногда для конфигов, для некоторых языков и прочих хаков, но это говно редкостное и больше не хочу)

чего сам не знаешь?

не-не-не... суть в том, что они заявляют, что знают - так пусть предъявят. а что знаю или не знаю я - вообще другой вопрос. логику-то включи.

Ты обвиняешь всех

но я обоснованно.

на слабо и тому подобное тут брать не надо, поверь ::)

так взял же.

neschastnyjj86
()
Ответ на: комментарий от neschastnyjj86

Ты спросил

так посоветуй какой-нибудь

а не

подразумевается же общего назначения, и неск. лет назад когда я искал, я обнаружил что общего назначения, развивающихся, современных и удобных нет.

Тебе и ответили каким-то, я свой ответ назвал и не для тебя ответ то писал. А ты мне ответил на то на что я тебе не отвечал :D Харее.

не-не-не... суть в том, что они заявляют, что знают - так пусть предъявят.
предъявят

Может всё же предложат, что собственно они и сделали, никто тут никому ничего не должен, а тем более предъявлять.

Всё короче, доброй ночи. Добрей надо быть )

так взял же.

Кого? :D Но раз ты напрямую говоришь это, значит твоя суть ясна, любишь язвить и получаешь от этого удовольствие. Такое себе.

Deleted
()
Ответ на: комментарий от Deleted

посмотри внимательно.

бери любой текстовый шаблонизатор с макросами и всо

«любой» - implying их пруд пруди нормальных? или наоброт: только subwoofer их знает (но не скажет), а crutch_master не знает (и не узнает) ? он ему предлагает их для SQL(!), implying они универсальное или общего назначения?

чотким-пацанским языком написал для текста, а не для html.

далее тот же советчик, говорит, что не для html. т.е. html-специализированные вычитаем. или все специализованные вычитаем? ну ок. дальше попросили привести пример - в ответ тишина. а в теме много кто отписался, кто-то даже про лисп начал. обрати внимание: изначальный советчик ничего не назвал вообще. anonymous с m4 - это я и есть. что-то назвали только я и ты. (но твой только условно проходит по той же причине что html-ные)

т.е. итого НИКТО кроме меня ничего не назвал. вот я и говорю, на что-то намекают, колотят понты, бросаются заявлениями, пукают в лужу, сливаются.

neschastnyjj86
()
Ответ на: комментарий от deep-purple

А это?

Тоже не плохо, если знать что это.

crutch_master ★★★★★
() автор топика
Ответ на: комментарий от den73

Чисто ради интереса, какой бы язык тебе подошёл?

Я вчера упоросля и решил таки пилить на js. Для cli версии приделаю к duktape чтение файлов и потоки. Во входной скрипт будут добавляться разные команды/алиасы, которые будут связаны с пользовательским js кодом, который из шаблона будут что-то делать. Можно будет делать что угодно, по идее, вплоть до шаблонизатора копипасты.

crutch_master ★★★★★
() автор топика
Ответ на: комментарий от crutch_master

Ну если есть желание написать своё, можно подглядеть как они сделали с точки зрения синтаксиса и прочего )

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.