[postgis-tickets] [SCM] PostGIS branch master updated. 3.3.0rc2-317-g8e3cbc237

git at osgeo.org git at osgeo.org
Thu Nov 3 17:21:05 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, master has been updated
       via  8e3cbc237a8335896512b38c4ab2beaa9dfb499c (commit)
      from  41a87d30fb58110e73b0d05978ca9701fe2b17b2 (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 8e3cbc237a8335896512b38c4ab2beaa9dfb499c
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.4.0

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..ac4f8ad23 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:
 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 +++-
 5 files changed, 28 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