[postgis-tickets] [SCM] PostGIS branch stable-3.3 updated. 3.3.1-25-g0e63f02fd
git at osgeo.org
git at osgeo.org
Thu Nov 3 17:30:14 PDT 2022
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "PostGIS".
The branch, stable-3.3 has been updated
via 0e63f02fd6f5de065f6639e1c989605f1d866476 (commit)
from 642c8332927e7981ec20e3787388f0f54bfaa5dc (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 0e63f02fd6f5de065f6639e1c989605f1d866476
Author: Regina Obe <lr at pcorp.us>
Date: Thu Nov 3 20:20:14 2022 -0400
Handle load of dbase character fields with not width specified
References #5280 for PostGIS 3.3.2
diff --git a/NEWS b/NEWS
index 72bcf3bee..96bf753ae 100644
--- a/NEWS
+++ b/NEWS
@@ -11,6 +11,7 @@ xxxx/xx/xx
- #5241, Crash on ST_SnapToGrid with empty multis (Regina Obe)
- #5081, Fix error in topology import of self-intersecting rings (Sandro Santilli)
- #5234, Fix 2.5d topology building regression (Sandro Santilli)
+ - #5280, Handle load of dbase character fields with no width specified (Regina Obe)
PostGIS 3.3.1
diff --git a/loader/shp2pgsql-core.c b/loader/shp2pgsql-core.c
index f292f212c..036880e5c 100644
--- a/loader/shp2pgsql-core.c
+++ b/loader/shp2pgsql-core.c
@@ -1363,9 +1363,10 @@ ShpLoaderGetSQLHeader(SHPLOADERSTATE *state, char **strheader)
/* First output the raw field type string */
stringbuffer_aprintf(sb, "%s", state->pgfieldtypes[j]);
- /* Some types do have typmods though... */
- if (!strcmp("varchar", state->pgfieldtypes[j]))
- stringbuffer_aprintf(sb, "(%d)", state->widths[j]);
+ /* Some types do have typmods */
+ /* Apply width typmod for varchar if there is positive width **/
+ if (!strcmp("varchar", state->pgfieldtypes[j]) && state->widths[j] > 0)
+ stringbuffer_aprintf(sb, "(%d)", state->widths[j]);
if (!strcmp("numeric", state->pgfieldtypes[j]))
{
diff --git a/regress/loader/CharNoWidth.dbf b/regress/loader/CharNoWidth.dbf
new file mode 100644
index 000000000..9edcc7d04
Binary files /dev/null and b/regress/loader/CharNoWidth.dbf differ
diff --git a/regress/loader/CharNoWidth.select.expected b/regress/loader/CharNoWidth.select.expected
new file mode 100644
index 000000000..3cd81d490
--- /dev/null
+++ b/regress/loader/CharNoWidth.select.expected
@@ -0,0 +1,18 @@
+1|11|50000|02390665|1150000|Washington|Washington city|25|C5|||G4110|N|158316184|18709787|+38.9042474|-077.0165167
+aland|
+awater|
+classfp|2
+funcstat|1
+geoid|7
+gid|
+intptlat|11
+intptlon|12
+lsad|2
+mtfcc|5
+name|100
+namelsad|100
+pcicbsa|
+pcinecta|
+placefp|5
+placens|8
+statefp|2
diff --git a/regress/loader/CharNoWidth.select.sql b/regress/loader/CharNoWidth.select.sql
new file mode 100644
index 000000000..c7ccb2e01
--- /dev/null
+++ b/regress/loader/CharNoWidth.select.sql
@@ -0,0 +1,3 @@
+SET CLIENT_ENCODING to UTF8;
+SELECT * FROM loadedshp;
+SELECT column_name, character_maximum_length FROM information_schema.columns WHERE table_name = 'loadedshp' ORDER BY column_name;
diff --git a/regress/loader/tests.mk b/regress/loader/tests.mk
index 30c7d07b2..1fc77ac6f 100644
--- a/regress/loader/tests.mk
+++ b/regress/loader/tests.mk
@@ -39,4 +39,6 @@ TESTS += \
$(top_srcdir)/regress/loader/Latin1-implicit \
$(top_srcdir)/regress/loader/mfile \
$(top_srcdir)/regress/loader/TestSkipANALYZE \
- $(top_srcdir)/regress/loader/TestANALYZE
+ $(top_srcdir)/regress/loader/TestANALYZE \
+ $(top_srcdir)/regress/loader/CharNoWidth
+
-----------------------------------------------------------------------
Summary of changes:
NEWS | 1 +
loader/shp2pgsql-core.c | 7 ++++---
regress/loader/CharNoWidth.dbf | Bin 0 -> 830 bytes
regress/loader/CharNoWidth.select.expected | 18 ++++++++++++++++++
regress/loader/CharNoWidth.select.sql | 3 +++
regress/loader/tests.mk | 4 +++-
6 files changed, 29 insertions(+), 4 deletions(-)
create mode 100644 regress/loader/CharNoWidth.dbf
create mode 100644 regress/loader/CharNoWidth.select.expected
create mode 100644 regress/loader/CharNoWidth.select.sql
hooks/post-receive
--
PostGIS
More information about the postgis-tickets
mailing list