DATA = data_types_examples--0.0.1.sql
# REGRESS = my_first_extension-main-test
-OBJS = data_types_examples.o warn_me.o my_factorial.o
+OBJS = data_types_examples.o warn_me.o my_factorial.o hello_world.o
PG_CONFIG ?= pg_config # Path to the pg_config executable
-CREATE FUNCTION my_inc()
-RETURNS INT
-AS 'MODULE_PATHNAME', 'my_inc'
-LANGUAGE C;
CREATE FUNCTION warn_me(int) RETURNS int
AS 'MODULE_PATHNAME', 'warn_me'
AS 'MODULE_PATHNAME', 'my_factorial'
LANGUAGE C;
+
+CREATE FUNCTION hello_world()
+RETURNS TEXT
+AS 'MODULE_PATHNAME', 'hello_world'
+LANGUAGE C;
+
--- /dev/null
+#include "postgres.h"
+#include "fmgr.h"
+#include "utils/builtins.h"
+
+PG_FUNCTION_INFO_V1(hello_world);
+
+Datum
+hello_world(PG_FUNCTION_ARGS)
+{
+ char message[] = "Hello, World!";
+ Datum datum;
+
+ datum = CStringGetTextDatum(message);
+
+ PG_RETURN_TEXT_P(datum);
+}
+
## Волшебные макросы pg-функций
+"С-Программист, помни! Макрос -- твой лучший друг!"
+
Создание расширения начинается с вызова макроса
```