8000 Commit of interim work · postgres/postgres@e6f69cc · GitHub
[go: up one dir, main page]

Skip to content

Commit e6f69cc

Browse files
committed
Commit of interim work
1 parent fb83d03 commit e6f69cc

File tree

131 files changed

+965
-683
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

131 files changed

+965
-683
lines changed

GNUmakefile.in

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,12 @@ libpqparser:
139139
cp src/port/libpgport_srv.a $(DESTDIR)$(libdir)
140140
cp libpqparser.a $(DESTDIR)$(libdir)/
141141

142+
LIBPQPARSER2OBJS= $(shell cat src/backend/parser/objfiles.txt)
143+
144+
libpqparser2:
145+
ar cr libpqparser2.a $(LIBPQPARSEROBJS)
146+
ranlib libpqparser2.a
147+
# cp src/port/libpgport_srv.a $(DESTDIR)$(libdir)
148+
cp libpqparser2.a $(DESTDIR)$(libdir)/
149+
142150
.PHONY: dist distdir distcheck docs install-docs world check-world install-world installcheck-world

contrib/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ SUBDIRS = \
4545
pgstattuple \
4646
pg_xlogdump \
4747
postgres_fdw \
48+
requery \
4849
seg \
4950
spi \
5051
tablefunc \

contrib/requery/Makefile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# contrib/requery/Makefile
2+
3+
MODULE_big = requery
4+
OBJS = requery.o
5+
6+
EXTENSION = requery
7+
DATA = requery--0.1.sql # test_parser--unpackaged--1.0.sql
8+
9+
REGRESS = requery
10+
11+
ifdef USE_PGXS
12+
PG_CONFIG = pg_config
13+
PGXS := $(shell $(PG_CONFIG) --pgxs)
14+
include $(PGXS)
15+
else
16+
subdir = contrib/requery
17+
top_builddir = ../..
18+
include $(top_builddir)/src/Makefile.global
19+
include $(top_srcdir)/contrib/contrib-global.mk
20+
endif
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
CREATE EXTENSION test_parser;
2+
-- make test configuration using parser
3+
CREATE TEXT SEARCH CONFIGURATION testcfg (PARSER = testparser);
4+
ALTER TEXT SEARCH CONFIGURATION testcfg ADD MAPPING FOR word WITH simple;
5+
-- ts_parse
6+
SELECT * FROM ts_parse('testparser', 'That''s simple parser can''t parse urls like http://some.url/here/');
7+
tokid | token
8+
-------+-----------------------
9+
3 | That's
10+
12 |
11+
3 | simple
12+
12 |
13+
3 | parser
14+
12 |
15+
3 | can't
16+
12 |
17+
3 | parse
18+
12 |
19+
3 | urls
20+
12 |
21+
3 | like
22+
12 |
23+
3 | http://some.url/here/
24+
(15 rows)
25+
26+
SELECT to_tsvector('testcfg','That''s my first own parser');
27+
to_tsvector
28+
-------------------------------------------------
29+
'first':3 'my':2 'own':4 'parser':5 'that''s':1
30+
(1 row)
31+
32+
SELECT to_tsquery('testcfg', 'star');
33+
to_tsquery
34+
------------
35+
'star'
36+
(1 row)
37+
38+
SELECT ts_headline('testcfg','Supernovae stars are the brightest phenomena in galaxies',
39+
to_tsquery('testcfg', 'stars'));
40+
ts_headline
41+
-----------------------------------------------------------------
42+
Supernovae <b>stars</b> are the brightest phenomena in galaxies
43+
(1 row)
44+

contrib/requery/requery--0.1.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/* contrib/test_parser/test_parser--1.0.sql */
2+
3+
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
4+
\echo Use "CREATE EXTENSION requery" to load this file. \quit
5+
6+
CREATE FUNCTION requery(cstring)
7+
RETURNS cstring
8+
AS 'MODULE_PATHNAME'
9+
LANGUAGE C STRICT;
10+

contrib/requery/requery.c

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
/*-------------------------------------------------------------------------
2+
*
3+
* requery.c
4+
* Extension to support testing of node -> SQL code and transfer
5+
* decoding
6+
*
7+
* Copyright (c) 2013, PostgreSQL Global Development Group
8+
*
9+
* IDENTIFICATION
10+
* contrib/requery/requery.c
11+
*
12+
*-------------------------------------------------------------------------
13+
*/
14+
#include "postgres.h"
15+
#include "fmgr.h"
16+
#include "executor/spi.h"
17+
#include "lib/stringinfo.h"
18+
19+
PG_MODULE_MAGIC;
20+
21+
22+
/*
23+
* types
24+
*/
25+
26+
/*
27+
* prototypes
28+
*/
29+
PG_FUNCTION_INFO_V1(requery);
30+
Datum requery(PG_FUNCTION_ARGS);
31+
32+
/*
33+
* functions
34+
*/
35+
Datum
36+
requery(PG_FUNCTION_ARGS)
37+
{
38+
StringInfoData sid;
39+
int ret, proc;
40+
41+
/* PG_RETURN_POINTER(pst); */
42+
const char *string = PG_GETARG_CSTRING(0);
43+
44+
/* Connect to SPI manager */
45+
if ((ret = SPI_connect()) < 0)
46+
{
47+
/* internal error */
48+
elog(ERROR, "crosstab: SPI_connect returned %d", ret);
49+
}
50+
51+
ret = SPI_transfer_execute(string, false, 0);
52+
proc = SPI_processed;
53+
54+
/* If no qualifying tuples, fall out early */
55+
if (!(ret == SPI_OK_SELECT ||
56+
ret == SPI_OK_INSERT_RETURNING ||
57+
ret == SPI_OK_DELETE_RETURNING ||
58+
ret == SPI_OK_UPDATE_RETURNING ||
59+
proc <= 0))
60+
{
61+
SPI_finish();
62+
/* rsinfo->isDone = ExprEndResult; */
63+
/* PG_RETURN_NULL(); */
64+
PG_RETURN_CSTRING(string);
65+
}
66+
67+
68+
69+
70+
71+
72+
if (ret > 0 && SPI_tuptable != NULL)
73+
{
74+
int i, j;
75+
TupleDesc tupdesc = SPI_tuptable->tupdesc;
76+
SPITupleTable *tuptable = SPI_tuptable;
77+
78+
initStringInfo(&sid);
79+
80+
for (j = 0; j < proc; j++)
81+
{
82+
HeapTuple tuple = tuptable->vals[j];
83+
84+
for (i = 1; i <= tupdesc->natts; i++)
85+
{
86+
appendStringInfo(&sid, " %s%s", SPI_getvalue(tuple, tupdesc, i), (i == tupdesc->natts) ? " " : " |");
87+
}
88+
89+
elog(INFO, "EXECQ: %s", sid.data);
90+
}
91+
92+
93+
}
94+
95+
96+
97+
98+
99+
100+
101+
102+
SPI_finish();
103+
104+
PG_RETURN_CSTRING(sid.data);
105+
}

contrib/requery/requery.control

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# requery extension
2+
comment = 'extension to test node to SQL and transfer decoding'
3+
default_version = '0.1'
4+
module_pathname = '$libdir/requery'
5+
relocatable = true

contrib/requery/sql/test_parser.sql

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
CREATE EXTENSION test_parser;
2+
3+
-- make test configuration using parser
4+
5+
CREATE TEXT SEARCH CONFIGURATION testcfg (PARSER = testparser);
6+
7+
ALTER TEXT SEARCH CONFIGURATION testcfg ADD MAPPING FOR word WITH simple;
8+
9+
-- ts_parse
10+
11+
SELECT * FROM ts_parse('testparser', 'That''s simple parser can''t parse urls like http://some.url/here/');
12+
13+
SELECT to_tsvector('testcfg','That''s my first own parser');
14+
15+
SELECT to_tsquery('testcfg', 'star');
16+
17+
SELECT ts_headline('testcfg','Supernovae stars are the brightest phenomena in galaxies',
18+
to_tsquery('testcfg', 'stars'));
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/* contrib/test_parser/test_parser--unpackaged--1.0.sql */
2+
3+
-- complain if script is sourced in psql, rather than via CREATE EXTENSION
4+
\echo Use "CREATE EXTENSION test_parser" to load this file. \quit
5+
6+
ALTER EXTENSION test_parser ADD function testprs_start(internal,integer);
7+
ALTER EXTENSION test_parser ADD function testprs_getlexeme(internal,internal,internal);
8+
ALTER EXTENSION test_parser ADD function testprs_end(internal);
9+
ALTER EXTENSION test_parser ADD function testprs_lextype(internal);
10+
ALTER EXTENSION test_parser ADD text search parser testparser;

src/asn1/Makefile

Lines changed: 56 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
# IDENTIFICATION
1313
# src/asn1/Makefile
1414
#
15+
# NOTES
16+
# Doesn't use standard CFLAGS / LDFLAGS - fix
17+
#
1518
#-------------------------------------------------------------------------
1619

1720
subdir = src/port
@@ -21,54 +24,74 @@ include $(top_builddir)/src/Makefile.global
2124
override CPPFLAGS := -I$(top_builddir)/src/asn1 $(CPPFLAGS)
2225

2326
OBJS = ASNBinaryExpression.o ASNBinaryOperator.o ASNColumnRef.o ASNColumnRefItem.o ASNColumnRefList.o \
24-
ASNExpression.o ASNFromClause.o ASNPlusExpression.o ASNQuery.o ASNRangeVar.o ASNResTarget.o \
25-
ASNSelectStmt.o ASNString.o BIT_STRING.o BOOLEAN.o IA5String.o INTEGER.o NULL.o NativeEnumerated.o \
26-
NativeInteger.o NativeReal.o OCTET_STRING.o REAL.o UTF8String.o asn_SEQUENCE_OF.o asn_SET_OF.o \
27-
asn_codecs_prim.o ber_decoder.o ber_tlv_length.o ber_tlv_tag.o constr_CHOICE.o constr_SEQUENCE.o \
28-
constr_SEQUENCE_OF.o constr_SET_OF.o constr_TYPE.o constraints.o der_encoder.o per_decoder.o \
29-
per_encoder.o per_support.o xer_decoder.o xer_encoder.o xer_support.o
30-
31-
HEADERS = ASNBinaryExpression.h ASNBinaryOperator.h ASNColumnRef.h ASNColumnRefItem.h ASNColumnRefList.h \
32-
ASNExpression.h ASNFromClause.h ASNPlusExpression.h ASNQuery.h ASNRangeVar.h ASNResTarget.h \
33-
ASNSelectStmt.h ASNString.h BIT_STRING.h BOOLEAN.h IA5String.h INTEGER.h NULL.h NativeEnumerated.h \
34-
NativeInteger.h NativeReal.h OCTET_STRING.h REAL.h UTF8String.h asn_SEQUENCE_OF.h asn_SET_OF.h \
35-
asn_application.h asn_codecs.h asn_codecs_prim.h asn_internal.h asn_system.h ber_decoder.h \
36-
ber_tlv_length.h ber_tlv_tag.h constr_CHOICE.h constr_SEQUENCE.h constr_SEQUENCE_OF.h constr_SET_OF.h \
37-
constr_TYPE.h constraints.h der_encoder.h per_decoder.h per_encoder.h per_support.h xer_decoder.h \
38-
xer_encoder.h xer_support.h
39-
40-
GENC = ASNBinaryExpression.c ASNBinaryOperator.c ASNColumnRef.c ASNColumnRefItem.c ASNColumnRefList.c ASNExpression.c \
41-
ASNFromClause.c ASNPlusExpression.c ASNQuery.c ASNRangeVar.c ASNResTarget.c ASNSelectStmt.c ASNString.c \
42-
BIT_STRING.c BOOLEAN.c IA5String.c INTEGER.c NULL.c NativeEnumerated.c NativeInteger.c NativeReal.c \
43-
OCTET_STRING.c REAL.c UTF8String.c asn_SEQUENCE_OF.c asn_SET_OF.c asn_codecs_prim.c ber_decoder.c \
44-
ber_tlv_length.c ber_tlv_tag.c constr_CHOICE.c constr_SEQUENCE.c constr_SEQUENCE_OF.c constr_SET_OF.c \
45-
constr_TYPE.c constraints.c der_encoder.c per_decoder.c per_encoder.c per_support.c xer_decoder.c \
46-
xer_encoder.c xer_support.c
27+
ASNExpression.o ASNFromClause.o ASNPlusExpression.o ASNQuery.o ASNRangeVar.o ASNResTarget.o ASNSelectStmt.o \
28+
ASNString.o BIT_STRING.o BOOLEAN.o IA5String.o INTEGER.o NULL.o NativeEnumerated.o NativeInteger.o \
29+
NativeReal.o OCTET_STRING.o REAL.o UTF8String.o asn_SEQUENCE_OF.o asn_SET_OF.o asn_codecs_prim.o \
30+
ber_decoder.o ber_tlv_length.o ber_tlv_tag.o constr_CHOICE.o constr_SEQUENCE.o constr_SEQUENCE_OF.o \
31+
constr_SET_OF.o constr_TYPE.o constraints.o der_encoder.o per_decoder.o per_encoder.o per_support.o \
32+
xer_decoder.o xer_encoder.o xer_support.o pg-asn1-encode.o tree_to_asn1.o
33+
34+
GENH= generated/ASNBinaryExpression.h generated/ASNBinaryOperator.h generated/ASNColumnRef.h generated/ASNColumnRefItem.h \
35+
generated/ASNColumnRefList.h generated/ASNExpression.h generated/ASNFromClause.h generated/ASNPlusExpression.h \
36+
generated/ASNQuery.h generated/ASNRangeVar.h generated/ASNResTarget.h generated/ASNSelectStmt.h \
37+
generated/ASNString.h generated/BIT_STRING.h generated/BOOLEAN.h generated/IA5String.h generated/INTEGER.h \
38+
generated/NULL.h generated/NativeEnumerated.h generated/NativeInteger.h generated/NativeReal.h \
39+
generated/OCTET_STRING.h generated/REAL.h generated/UTF8String.h generated/asn_SEQUENCE_OF.h \
40+
generated/asn_SET_OF.h generated/asn_application.h generated/asn_codecs.h generated/asn_codecs_prim.h \
41+
generated/asn_internal.h generated/asn_system.h generated/ber_decoder.h generated/ber_tlv_length.h \
42+
generated/ber_tlv_tag.h generated/constr_CHOICE.h generated/constr_SEQUENCE.h generated/constr_SEQUENCE_OF.h \
43+
generated/constr_SET_OF.h generated/constr_TYPE.h generated/constraints.h generated/der_encoder.h \
44+
generated/per_decoder.h generated/per_encoder.h generated/per_support.h generated/xer_decoder.h \
45+
generated/xer_encoder.h generated/xer_support.h
46+
47+
HEADERS= pg-asn1-encode.h
48+
49+
GENC = generated/ASNBinaryExpression.c generated/ASNBinaryOperator.c generated/ASNColumnRef.c \
50+
generated/ASNColumnRefItem.c generated/ASNColumnRefList.c generated/ASNExpression.c generated/ASNFromClause.c \
51+
generated/ASNPlusExpression.c generated/ASNQuery.c generated/ASNRangeVar.c generated/ASNResTarget.c \
52+
generated/ASNSelectStmt.c generated/ASNString.c generated/BIT_STRING.c generated/BOOLEAN.c \
53+
generated/IA5String.c generated/INTEGER.c generated/NULL.c generated/NativeEnumerated.c \
54+
generated/NativeInteger.c generated/NativeReal.c generated/OCTET_STRING.c generated/REAL.c \
55+
generated/UTF8String.c generated/asn_SEQUENCE_OF.c generated/asn_SET_OF.c generated/asn_codecs_prim.c \
56+
generated/ber_decoder.c generated/ber_tlv_length.c generated/ber_tlv_tag.c generated/constr_CHOICE.c \
57+
generated/constr_SEQUENCE.c generated/constr_SEQUENCE_OF.c generated/constr_SET_OF.c generated/constr_TYPE.c \
58+
generated/constraints.c generated/der_encoder.c generated/per_decoder.c generated/per_encoder.c \
59+
generated/per_support.c generated/xer_decoder.c generated/xer_encoder.c generated/xer_support.c
60+
61+
SOURCES= pg-asn1-encode.c tree_to_asn1.c
4762

4863

4964
all: $(top_builddir)/src/include/asn1/ASNQuery.h pgasn1_s.so libpgasn1.a
5065

51-
$(top_builddir)/src/include/asn1/ASNQuery.h: ASNQuery.h
66+
$(top_builddir)/src/include/asn1/ASNQuery.h: generated/ASNQuery.h
5267
-mkdir $(top_builddir)/src/include/asn1
68+
for header in $(GENH); do \
69+
$(INSTALL_DATA) $(srcdir)/$$header '$(top_builddir)/src/include/asn1' || exit; \
70+
done
5371
for header in $(HEADERS); do \
5472
$(INSTALL_DATA) $(srcdir)/$$header '$(top_builddir)/src/include/asn1' || exit; \
5573
done
5674

57-
ASNQuery.h: SQLQuery.asn1
75+
generated/ASNQuery.h: SQLQuery.asn1
5876
ifdef ASN1C
59-
$(ASN1C) -fskeletons-copy -fnative-types -gen-PER SQLQuery.asn1 && touch ASNQuery.h
60-
-rm converter-sample.c Makefile.am.sample
77+
-mkdir generated
78+
(cd generated; $(ASN1C) -fskeletons-copy -fnative-types -gen-PER ../SQLQuery.asn1 && touch ASNQuery.h)
79+
-rm generated/converter-sample.c generated/Makefile.am.sample
6180
else
6281
@$(missing) asn1c $< $@
6382
endif
6483

65-
libpgasn1.a: ASNQuery.h
66-
$(CC) -g -I. -c *.c
84+
libpgasn1.a: generated/ASNQuery.h
85+
# $(CC) -g -I../../src/include -I. -Igenerated -c generated/*.c *.c
86+
$(CC) -g -c -I../../src/include -I../../src/backend -I. -Igenerated generated/*.c
87+
$(CC) -g -c -I../include -I../backend -I. -Igenerated *.c
6788
ar cr libpgasn1.a *.o
6889
ranlib libpgasn1.a
6990

70-
pgasn1_s.so: ASNQuery.h
71-
$(CC) -g -fPIC -I. -shared -o pgasn1_s.so *.c
91+
pgasn1_s.so: generated/ASNQuery.h
92+
$(CC) -g -c -fPIC -I../../src/include -I../../src/backend -I. -Igenerated generated/*.c
93+
$(CC) -g -c -fPIC -I../include -I../backend -I. -Igenerated *.c
94+
$(CC) -g -fPIC -shared -o pgasn1_s.so $(OBJS)
7295

7396
installdirs:
7497
$(MKDIR_P) '$(DESTDIR)$(libdir)'
@@ -82,4 +105,5 @@ clean:
82105
-rm libpgasn1.a pgasn1_s.so $(OBJS)
83106

84107
maintainer-clean: clean
85-
-rm $(GENC) $(HEADERS)
108+
-rm $(GENC) $(GENH)
109+
rmdir generated

src/asn1/ASNBinaryExpression.c renamed to src/asn1/generated/ASNBinaryExpression.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Generated by asn1c-0.9.21 (http://lionet.info/asn1c)
33
* From ASN.1 module "SQLQuery"
4-
* found in "SQLQuery.asn1"
4+
* found in "../SQLQuery.asn1"
55
* `asn1c -fskeletons-copy -fnative-types`
66
*/
77

src/asn1/ASNBinaryExpression.h renamed to src/asn1/generated/ASNBinaryExpression.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Generated by asn1c-0.9.21 (http://lionet.info/asn1c)
33
* From ASN.1 module "SQLQuery"
4-
* found in "SQLQuery.asn1"
4+
* found in "../SQLQuery.asn1"
55
* `asn1c -fskeletons-copy -fnative-types`
66
*/
77

src/asn1/ASNBinaryOperator.c renamed to src/asn1/generated/ASNBinaryOperator.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Generated by asn1c-0.9.21 (http://lionet.info/asn1c)
33
* From ASN.1 module "SQLQuery"
4-
* found in "SQLQuery.asn1"
4+
* found in "../SQLQuery.asn1"
55
* `asn1c -fskeletons-copy -fnative-types`
66
*/
77

src/asn1/ASNBinaryOperator.h renamed to src/asn1/generated/ASNBinaryOperator.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*
22
* Generated by asn1c-0.9.21 (http://lionet.info/asn1c)
33
* From ASN.1 module "SQLQuery"
4-
* found in "SQLQuery.asn1"
4+
* found in "../SQLQuery.asn1"
55
* `asn1c -fskeletons-copy -fnative-types`
66
*/
77

0 commit comments

Comments
 (0)
0