Ang nasa loob ng panipi ay hindi code, at iyon ang buong hirap. Ang formatter na naglalaki ng keyword gamit ang basta paghahanap ay ginagawang 'SELECT one FROM the list' ang talang nagsasabing 'select one from the list' — tahimik na binabago ang datos sa query na ipinaayos lang sana.
Kaya tinotoken muna ito, at keyword lang ang binabago ang case. Ganoon din ang komento.
Hindi rin ginagalaw ang pangalan ng column. Sa PostgreSQL, ang identifier na walang panipi ay bumababa sa maliit na titik at ang may panipi ay hindi — kaya ang pagbabago ng case ay puwedeng magpalit kung aling column ang tinutukoy.
At hindi ito nagpa-parse o nagve-validate. Inaayos nito ang anyo para mabasa ng tao. Ang formatter na nag-aangking nagve-validate ng SQL ay nag-aangking ipinatupad nito ang isang dialect.
Hindi, at iyon ang pangunahing tinatamaan ng tool na ito. Ang formatter na nagpapalaki ng keyword gamit ang payak na paghahanap ay ginagawang mukhang SQL na walang kuwenta ang notang nagsasabing “select one from the list” — tahimik na binabago ang datos sa loob ng query na pinaayos mo lang sana. Nagto-token muna ito, kaya ang nakilalang keyword lang ang binabago ang anyo. Iniiwan ang komento sa parehong dahilan.
Dahil puwedeng may kahulugan ang anyo ng titik. Sa PostgreSQL, ang identifier na walang panipi ay bumabagsak sa maliit na titik at ang may panipi ay hindi, kaya magkaibang column ang "Order" at ang Order — ang pagbabago sa anyo ng isa ay puwedeng magpalit kung aling column ang ibig sabihin ng query. Keyword lang ang ginagalaw.
Oo. Ang double quote ang karaniwang pananda ng identifier, ang backtick ay MySQL at ang square bracket ay SQL Server, at ang tatlo ay pinapanatiling eksakto sa pagkakasulat. Iyon ang dahilan kung bakit gumagana ang column na tinatawag na order, at ang pagkakamali dito ang paraan ng pagsira ng formatter sa perpektong wastong query.
Hindi. Inilalatag nito ang pahayag para mabasa ng tao, at iyon ang kailangan mo kapag nakatitig ka sa 400-karakter na linya mula sa ORM. Hindi ito nagpaparse, nagpapatunay o nagsusulat muli — ang formatter na nagsasabing pinapatunayan nito ang SQL ay nagsasabing ipinapatupad nito ang isang dialect, at ilan silang hindi magkasundo.
Inaayos pa rin ito. Ang may query na hindi tatakbo ay gusto pa ring makita ang hugis nito, at ang pagtangging ilatag ito ay nag-aalis ng iisang bagay na puwedeng magturo sa kanila kung saan nagkamali.
Hindi. Sa browser mo nangyayari ang lahat at walang ipinapadala o itinatago — at mahalaga iyon dito, dahil madalas na may dalang pangalan ng talahanayan, pangalan ng column at minsan ay tunay na halaga mula sa sarili mong database ang query.
Lahat ay pinapanatili kung paano isinulat. Iyan ang nagpapagana sa column na tinawag na order.
Runs entirely in your browser; nothing is transmitted. This lays a query out to be read — it does not parse, validate or rewrite it. Only keywords are recased; identifiers and anything inside quotes are left exactly as written. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.