উপাখ্যানিকভাবে, এটি এসকিউএল -এর সর্বাধিক অনুরোধ করা বৈশিষ্ট্য হতে পারে: কিছু ট্রেলিং কমা অনুমতি দিন।
ক্লাসিক উদাহরণ
SELECT a,
b,
c, -- here
FROM ...
আর একটি হল
CREATE TABLE tab1 (
a int,
b int,
c int, -- here
)
আরও কয়েকটি জনপ্রিয় থাকতে পারে। (দয়া করে প্রতিক্রিয়া পাঠান।)
আমরা কীভাবে এটি সমর্থন করতে পারি? এবং “আমরা” দ্বারা, আমি প্রাথমিকভাবে বলতে চাইছি, পোস্টগ্রেসকিউএল, যা আমি কাজ করি, বা এসকিউএল স্ট্যান্ডার্ডে, যা আমি কাজ করি। এবং শেষ পর্যন্ত অন্যান্য এসকিউএল বাস্তবায়নে, যা এই দুটি উত্সের কোনওটিই অনুসরণ করতে পারে বা নাও পারে।
পোস্টগ্রেসকিউএল -তে উপরের দুটি মামলা বাস্তবায়ন করা সহজ। হয়ে গেছে?!?
তবে কমা-বিচ্ছিন্ন তালিকা সহ এসকিউএল-তে আরও বেশি জায়গা রয়েছে, উদাহরণস্বরূপ, অ্যারে কনস্ট্রাক্টর, সারি কনস্ট্রাক্টর, ফাংশন কল, পাশাপাশি বিভিন্ন কমান্ডে যেমন ফাংশন সংজ্ঞা, টাইপ সংজ্ঞা, COPY
, CREATE PUBLICATION
আরও অনেক। এই সম্পর্কে কি করবেন? কোথাও আঁকার জন্য কি কোনও লাইন আছে?
আমি কয়েকটি সম্ভাব্য পন্থা দেখতে পাচ্ছি:
আমরা কেবলমাত্র কয়েকটি অনুরোধ করা কেসকে সমর্থন করি। সময়ের সাথে সাথে, লোকেরা যদি অনুরোধ করে তবে আমরা আরও কয়েকটি যুক্ত করতে পারি।
আমরা বেশিরভাগ ক্ষেত্রে সমর্থন করি, ব্যাকরণ দ্বন্দ্বগুলি বাস্তবায়নে বা কারণ হিসাবে খুব জটিল তা বাদে।
আমরা কঠোরভাবে ট্রেলিং কমা সর্বত্র কমা ব্যবহার করা হয় এবং ভবিষ্যতের সংযোজনগুলির জন্য এটি বজায় রাখি।
এগুলি আমার মতে সমস্ত সমস্যাযুক্ত। যদি আমরা বিকল্প 1 করি তবে আমরা কীভাবে জনপ্রিয় তা নির্ধারণ করব? এবং যদি আমরা সময়ের সাথে এটি পরিবর্তন করি তবে এমন সংস্করণগুলির মিশ্রণ থাকবে যা বিভিন্ন জিনিসকে সমর্থন করে এবং এটি খুব বিভ্রান্তিকর হবে। বিকল্প 2 অদ্ভুত, আপনি কীভাবে কাটফট নির্ধারণ করবেন? বিকল্প 3 কাজটি করবে, তবে এটি স্পষ্টতই অনেক কাজ হবে। এবং এমন কিছু ক্ষেত্রে থাকতে পারে যেখানে এটি অসম্ভব, এবং এটি বিকল্প 2 এ অবনতি করতে হবে।
যাই হোক না কেন, এটি এসকিউএল স্ট্যান্ডার্ডে পেয়ে ভাল লাগবে। তারপরে আমরা দীর্ঘমেয়াদে বাস্তবায়ন জুড়ে কিছু ধারাবাহিকতার জন্য লক্ষ্য রাখতে পারি।
সেখানে, আমাদের একই প্রশ্ন রয়েছে তবে আমাদের আরও কঠোর হওয়া দরকার।
যদি আমরা কেবলমাত্র কয়েকটি জন্য সমর্থন যুক্ত করি যা আমাদের মনে হয় সবচেয়ে বেশি অনুরোধ করা হয়েছে এবং সময়ের সাথে আরও বেশি যুক্ত করা হয়, তবে আমাদের বিভিন্ন কনফরমেশন বিধি এবং বৈশিষ্ট্য কোডগুলির একটি গুচ্ছ পরিচালনা করতে হবে। আমি মনে করি এটি প্রয়োগকারী এবং ব্যবহারকারীদের জন্য বিভ্রান্তিকর হবে। আমি এখনও মনে করি যে সি সি 89 -এ কাঠামোর মানগুলিতে ট্রেলিং কমাগুলিকে সমর্থন করেছে তবে কেবল সি 99 এ এনাম ঘোষণায়। যে বিভ্রান্তিকর ছিল! এবং এখন তা বিবেচনা করুন তবে আরও অনেক সময়!
সম্ভবত কোনও বিকল্প নেই 2, কারণ যুক্ত করা হচ্ছে
<optional trailing
(বা এটি যা বলা যেতে পারে) সমস্ত স্ট্যান্ডার্ড পাঠ্য জুড়ে সহজ। এমন কোনও মামলা নেই যা “খুব জটিল”।
comma>আমরা এটি সর্বত্র যুক্ত করতে পারে। এটা সোজা হবে। তবে তারপরে আমরা বাস্তবায়নের উদ্বেগগুলি বিবেচনায় নিই না। এমন কি এমন মামলা রয়েছে যেখানে এটি খুব জটিল খুব জটিল? এটির জন্য অতিরিক্ত সংরক্ষিত শব্দের প্রয়োজন হবে? আমরা কীভাবে যাচাই করব যে এটি আসলে বাস্তবায়নযোগ্য? আমি মনে করি এর ফলে প্রকৃত বাস্তবায়নে বিভাজন হবে, যা ঠিক মূল বিষয় নয়।
আমি প্রায় এক ডজন প্রোগ্রামিং ভাষা নিয়ে গবেষণা করেছি। তাদের বেশিরভাগের আজকাল কোথাও কিছু ট্রেলিং-কমা সমর্থন রয়েছে। তবে সেখানেই মিল রয়েছে। সাধারণত, আপনি এনাম সংজ্ঞা বা অ্যারে প্রারম্ভিককরণের মতো কিছুতে ট্রেলিং কমা সমর্থন দেখতে পারেন। তবে ফাংশন কলগুলি কীভাবে? বা ফাংশন সংজ্ঞা? আপনি সহজেই তিনটি ভিন্ন উত্তর খুঁজে পেতে পারেন! এছাড়াও, প্রোগ্রামিং ভাষায় সাধারণত এসকিউএল এর চেয়ে অনেক কম সিনট্যাকটিক কনস্ট্রাক্ট থাকে যা সাধারণত একটি ভাল জিনিস, তবে তারপরে একটি ভাল তুলনা করা বা ভাল গাইডেন্স পাওয়া শক্ত।
এসকিউএল পাশে, ডাকডিবি আছে বিজ্ঞাপন সমর্থন
কমাগুলি অনুসরণ করার জন্য, তবে আমি উপরের প্রশ্নের কঠোর উত্তর খুঁজে পাইনি। এটি চেষ্টা করে দেখার চেষ্টা করে তারা কয়েকটি জনপ্রিয় কেসকে কভার করে তবে আপনি সহজেই এমন জায়গাগুলি খুঁজে পেতে পারেন যেখানে এটি কোনও সুস্পষ্ট কারণে কাজ করে না। এখন যদি অন্য বাস্তবায়নগুলি এটি তাদের নিজস্বভাবে করে তবে আমরা কেবল বিশৃঙ্খলা পাব।
আপনি কি মনে করেন? এখানে এগিয়ে যাওয়ার পথ কী?