🔵 عنوان مقاله
Building and Debugging Postgres
🟢 خلاصه مقاله:
این مطلب نشان میدهد چگونه یک محیط container برای کامپایل Postgres از سورس بسازید و آن را با GDB و VS Code دیباگ کنید. مراحل شامل نصب وابستگیها، پیکربندی با --enable-debug و --enable-cassert و CFLAGS مانند -O0 -g3، ساخت با make، راهاندازی با initdb و pg_ctl، و اتصال به پردازههای backend برای ردگیری اجرای کوئریها است. برای GDB، روی follow-fork-mode child، breakpoints در نقاط کلیدی، و کار با core dumpها تأکید میشود؛ و برای VS Code، استفاده از Dev Containers/Remote - Containers، تنظیم launch.json و sourceFileMap برای نگاشت مسیرها، و pipeTransport یا docker exec پیشنهاد میشود. در انتها، نکاتی مانند استفاده از ccache برای تسریع build، اجرای make check، افزایش logging، و نگهداشتن assertها برای یادگیری بهتر مطرح میشود.
#Postgres #PostgreSQL #GDB #VSCode #Containers #Debugging #DevContainers #CProgramming
🟣لینک مقاله:
https://postgresweekly.com/link/175386/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Building and Debugging Postgres
🟢 خلاصه مقاله:
این مطلب نشان میدهد چگونه یک محیط container برای کامپایل Postgres از سورس بسازید و آن را با GDB و VS Code دیباگ کنید. مراحل شامل نصب وابستگیها، پیکربندی با --enable-debug و --enable-cassert و CFLAGS مانند -O0 -g3، ساخت با make، راهاندازی با initdb و pg_ctl، و اتصال به پردازههای backend برای ردگیری اجرای کوئریها است. برای GDB، روی follow-fork-mode child، breakpoints در نقاط کلیدی، و کار با core dumpها تأکید میشود؛ و برای VS Code، استفاده از Dev Containers/Remote - Containers، تنظیم launch.json و sourceFileMap برای نگاشت مسیرها، و pipeTransport یا docker exec پیشنهاد میشود. در انتها، نکاتی مانند استفاده از ccache برای تسریع build، اجرای make check، افزایش logging، و نگهداشتن assertها برای یادگیری بهتر مطرح میشود.
#Postgres #PostgreSQL #GDB #VSCode #Containers #Debugging #DevContainers #CProgramming
🟣لینک مقاله:
https://postgresweekly.com/link/175386/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
sbaziotis.com
Building and Debugging Postgres
I collected useful information on how to build and debug Postgres in one place.
🔵 عنوان مقاله
Returning Multiple Rows with Postgres Extensions
🟢 خلاصه مقاله:
این مطلب به قلم Shaun Thomas بهصورت عملی توضیح میدهد که در افزونههای Postgres چگونه میتوان چندین سطر را برگرداند. نویسنده با تمرکز بر SRF و tuplestore، مراحل اصلی را تشریح میکند: راهاندازی وضعیت فراخوانی در مرحله اول، ساخت TupleDesc، تولید سطرها با SRF_RETURN_NEXT و پایان با SRF_RETURN_DONE؛ همچنین نکات مهمی مثل مدیریت حافظه در context درست، تعیین صحیح ویژگیهایی مانند volatility و strictness، و انتخاب بین SETOF نوع مرکب نامدار یا SETOF record را بیان میکند. مقاله به ملاحظات کارایی، استفاده ایمن از SPI در صورت اجرای SQL داخل افزونه، و تفاوتهای نسخهای که میتواند روی رفتار توابع بازگرداننده مجموعه تأثیر بگذارد نیز میپردازد. برای توسعهدهندگانی که قصد دارند افزونههای Postgres خود را بنویسند و نیاز به الگوهای قابل اتکا برای بازگرداندن چندین سطر دارند، این راهنما بسیار کاربردی است.
#Postgres #PostgreSQL #Extensions #SetReturningFunctions #SRF #CProgramming #Database #OpenSource
🟣لینک مقاله:
https://postgresweekly.com/link/176366/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy
Returning Multiple Rows with Postgres Extensions
🟢 خلاصه مقاله:
این مطلب به قلم Shaun Thomas بهصورت عملی توضیح میدهد که در افزونههای Postgres چگونه میتوان چندین سطر را برگرداند. نویسنده با تمرکز بر SRF و tuplestore، مراحل اصلی را تشریح میکند: راهاندازی وضعیت فراخوانی در مرحله اول، ساخت TupleDesc، تولید سطرها با SRF_RETURN_NEXT و پایان با SRF_RETURN_DONE؛ همچنین نکات مهمی مثل مدیریت حافظه در context درست، تعیین صحیح ویژگیهایی مانند volatility و strictness، و انتخاب بین SETOF نوع مرکب نامدار یا SETOF record را بیان میکند. مقاله به ملاحظات کارایی، استفاده ایمن از SPI در صورت اجرای SQL داخل افزونه، و تفاوتهای نسخهای که میتواند روی رفتار توابع بازگرداننده مجموعه تأثیر بگذارد نیز میپردازد. برای توسعهدهندگانی که قصد دارند افزونههای Postgres خود را بنویسند و نیاز به الگوهای قابل اتکا برای بازگرداندن چندین سطر دارند، این راهنما بسیار کاربردی است.
#Postgres #PostgreSQL #Extensions #SetReturningFunctions #SRF #CProgramming #Database #OpenSource
🟣لینک مقاله:
https://postgresweekly.com/link/176366/web
➖➖➖➖➖➖➖➖
👑 @Database_Academy