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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy