Esri File Geodatabase API
Build Date:  Jul 26, 2017
Build Version:	1.5.1.253
Version:  v 1.5.1

*******************************************************************************
Supported Platforms:
*******************************************************************************
  Linux

    Red Hat Enterprise Linux Server 5.7+
    Red Hat Enterprise Linux Server 6.x
    Red Hat Enterprise Linux Server 7.x

    SUSE Linux Enterprise Server 11 SP4
    SUSE Linux Enterprise Server 12

    Ubuntu 14.04 LTS
    Ubuntu 16.04 LTS

  Mac OS X

    Yosemite (10.10)
    El Capitan (10.11)
    Sierra (10.12)


*******************************************************************************
Supported Compilers:
*******************************************************************************
  * The minimum supported versions of gcc are version 4.1.2 on Linux and 4.2.1
    on Mac OS X.
  * The minimum version of clang is clang 3.7
  * If you are using gcc 5.x and above you will need to use the
    FileGDB API version for GCC5.


*******************************************************************************
Setting up your build environment:
*******************************************************************************
  1) Ensure that your OS meets the minimum requirements.

  2) Ensure that your version of gcc meets the minimum requirements.
       You can run 'gcc --version' to display the gcc version.

  3) Setup your LD_LIBRARY_PATH. Note that for Mac it is DYLD_LIBRARY_PATH.
       For SH and variants (sh, bash, etc...):
	 LD_LIBRARY_PATH=<your location>/FileGDB_API/lib:$LD_LIBRARY_PATH
	 export LD_LIBRARY_PATH
       For CSH and variants (csh, tcsh, etc...):
	 setenv LD_LIBRARY_PATH <your location>/FileGDB_API/lib:$LD_LIBRARY_PATH


*******************************************************************************
Building all samples** (see Note #1):
*******************************************************************************
  1) Change directory to <your location>/FileGDB_API/samples
       cd <your location>/FileGDB_API/samples

  2) Type 'make'


*******************************************************************************
Building individual samples:
*******************************************************************************
  1) Change directory to the sample you want to build. For example:
       cd <your location>/FileGDB_API/samples/Querying

  2) Type 'make'


*******************************************************************************
Running the samples:
*******************************************************************************
  1) Change directory to the samples' bin directory after the samples are
     built.
       cd <your location>/FileGDB_API/samples/bin

  2) Run the sample. For example:
       ./Querying


*******************************************************************************
Notes:
*******************************************************************************
  1) Please note that Display is not built by default from the top-level
     samples Makefile. Display requires that GLUT be installed. To build the
     Display sample, cd to the samples/Display directory and type 'make'.
     Please note that some modification to the Display Makefile may be
     necessary to configure the build with GLUT:

     * To build the Display sample on Linux:

     a.) Install the GLUT/FreeGlut packages.

	 Ubuntu
	   # sudo apt-get install freeglut3-dev
	 Fedora/RedHat
	   # sudo yum install freeglut-devel

     b.) Change #include <glut.h> to #include <GL/glut.h> in Display.cpp.

     c.) Add -lGL -lGLU -lglut to the LIBS line in the Makefile.

	 LIBS += -lFileGDBAPI -lGL -lGLU -lglut


     * To build the Display sample on Mac OS X:

     a.) The GLUT package is already installed on Mavericks and Yosemite.

     b.) Change #include <glut.h> to #include <GLUT/glut.h> in Display.cpp.

     c.) Add -framework OpenGL -framework GLUT to the LDFLAGS in the Makefile

	 LDFLAGS += -framework OpenGL -framework GLUT

	   Also note that ProcessTopology is not built by default from the top-level
     samples Makefile. ProcessTopology requires that libXml2 be installed. To
     build the ProcessTopology sample, cd to the samples/ProcessTopology
     directory and type 'make'. Please note that some modification to the
     ProcessTopology Makefile may be necessary to configure the build with
     libXml.

  2) The samples are intended to be run from the bin directory. If they are
     moved to a different location they may not able to locate the data
     required and may fail to run correctly.

  3) One of the libraries included with the FileGDB API for Unix is the "FGDB
     Unix Runtime Library" (libfgdbunixrtl.so). That library is open source
     and licensed under the terms of the LGPL 2.1 license. The source code for
     the FGDB Unix Runtime Library will be available through SourceForge:

	http://sourceforge.net

     To locate it there, simply search for "ESRI FGDB Unix Runtime". Note that
     this library is the only open source component in the current release of
     the FileGDB API for Unix.

*******************************************************************************
Limitations:
*******************************************************************************

  * Rasters (Raster Dataset, Raster Catalog, Mosaic Datasets and Raster Attributes) are not supported.
  * Spatial queries with the File Geodatabase API are limited to the envelope-intersects operator.
  * Vertical Datums are not supported.
  * File GDB SQL SELECT does not support ORDER BY or joins (NIM064472).
  * There is no multi-threading support at this time.
  * Secure(licensed) data is not supported.

*******************************************************************************
What's New:
*******************************************************************************

	* MS Visual Studio 2015 support.
  * FileGDB API for GCC 5.x.
  * Added SUSE 12, Ubuntu 14.04 and Ubuntu 16.04 to the list of supported Linux platforms.

*******************************************************************************
Known Issues:
*******************************************************************************

  * Concurrent access from Windows and Unix (Linux or Mac) clients to the same
    File GeoDatabase can corrupt data. This combination should be avoided.
  * SQL ORDER BY and joins are not supported.
  * On Max OS X Mavericks and Yosemite it may be necessary to explicitly set
    CXX=g++ or CXX=clang++ depending on your FileGDB API platform package.
  * For users on Ubuntu 16.04 or those with gcc v5.x you may see linker errors similar to these
    when building the samples:

    . . .
    ./Domains.o: In function `main':
    Domains.cpp:(.text.startup+0x8e): undefined reference to `FileGDBAPI::OpenGeodatabase(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&, FileGDBAPI::Geodatabase&)'
    Domains.cpp:(.text.startup+0xe7): undefined reference to `FileGDBAPI::ErrorInfo::GetErrorDescription(int, std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >&)'
    Domains.cpp:(.text.startup+0x1af): undefined reference to `FileGDBAPI::Geodatabase::DeleteDomain(std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > const&)'
    . . .

    The problem is that gcc v5.x and above breaks ABI compatibility when linking against C++11 objects
    built with older gcc versions.

    There are two solutions:

    1.) Use the GCC5.x version of the FileGDB API.

    2.) Modify the sample's Makefile and add -D_GLIBCXX_USE_CXX11_ABI=0 to the CXXFLAGS:

	include ../../include/make.include
	CXXFLAGS+=-W -fexceptions -D_GLIBCXX_USE_CXX11_ABI=0 -D_CONSOLE ...

*******************************************************************************
Fixed Issues:
*******************************************************************************
BUG-000100781 Allow the use of the Spatial Reference ID to create the spatial reference.
BUG-000100780 The File GDB API FdoErrorManager crashes on some platforms.
BUG-000100782 File Geodatabase: COUNT(0) should return 0 with a WHERE clause that returns no rows (1=0)
BUG-000100783 Remove Windows FileGDBAPI.dll's reliance on Microsoft.VC90.CRT
BUG-000088293 FileGDB API throws -2147217395 error when executing SQL query with SQL functions.
BUG-000097116 Table::FreeWriteLock does not clear the lock.

*******************************************************************************
Sample program expected results:
*******************************************************************************

Domains:
*First run on fresh install

The SpeedLimit domain does not exist, no need to delete
The RoadSurfaceType domain does not exist, no need to delete
The SpeedLimit range domain has been created.
The definition of the MedianType domain is:
<Domain xsi:type='esri:CodedValueDomain' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:esri='http://www.esri.com/schemas/ArcGIS/10.0'><DomainName>MedianType</DomainName><FieldType>esriFieldTypeSmallInteger</FieldType><MergePolicy>esriMPTDefaultValue</MergePolicy><SplitPolicy>esriSPTDefaultValue</SplitPolicy><Description>Road median types.</Description><Owner></Owner><CodedValues xsi:type='esri:ArrayOfCodedValue'><CodedValue xsi:type='esri:CodedValue'><Name>None</Name><Code xsi:type='xs:short'>0</Code></CodedValue><CodedValue xsi:type='esri:CodedValue'><Name>Cement</Name><Code xsi:type='xs:short'>1</Code></CodedValue></CodedValues></Domain>
The RoadSurfaceType coded value domain has been created.
The RoadSurfaceType coded value domain has been Altered.
The SpeedLimnit (Range) domain has been assigned to the MaxSpeed field.
The RoadSurfaceType (CodedValue) domain has been assigned to the SurfaceType field.

*Second run on fresh install

The SpeedLimit domain has been deleted.
The RoadSurfaceType domain has been deleted.
The SpeedLimit range domain has been created.
The definition of the MedianType domain is:
<Domain xsi:type='esri:CodedValueDomain' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:esri='http://www.esri.com/schemas/ArcGIS/10.0'><DomainName>MedianType</DomainName><FieldType>esriFieldTypeSmallInteger</FieldType><MergePolicy>esriMPTDefaultValue</MergePolicy><SplitPolicy>esriSPTDefaultValue</SplitPolicy><Description>Road median types.</Description><Owner></Owner><CodedValues xsi:type='esri:ArrayOfCodedValue'><CodedValue xsi:type='esri:CodedValue'><Name>None</Name><Code xsi:type='xs:short'>0</Code></CodedValue><CodedValue xsi:type='esri:CodedValue'><Name>Cement</Name><Code xsi:type='xs:short'>1</Code></CodedValue></CodedValues></Domain>
The RoadSurfaceType coded value domain has been created.
The RoadSurfaceType coded value domain has been Altered.
The SpeedLimnit (Range) domain has been assigned to the MaxSpeed field.
The RoadSurfaceType (CodedValue) domain has been assigned to the SurfaceType field..

Editing:
*First run

Inserted two strings, one integer and a point.
Updated the CLASS field.
Deleting: Hemet

*Second run

Inserted two strings, one integer and a point.
Updated the CLASS field.

ExecutingSQL:

Bellingham	52179
Havre	10201
Anacortes	11451
Mount Vernon	17647
Oak Harbor	17176
Minot	34544
Kalispell	11917
Williston	13131
Port Angeles	17710

SELECT CITY_NAME, POP1990 FROM Cities WHERE CITY_NAME SIMILAR TO 'Redmond|Burien'

Redmond 35800
Burien	25089

SELECT * FROM Cities WHERE TYPE = 'city' AND OBJECTID < 10

1	Geometry	05280	Bellingham	53	Washington	5305280 city	N	-99	52179	2
2	Geometry	35050	Havre	30	Montana 3035050 city	N    2494    10201   1
3	Geometry	01990	Anacortes	53	Washington	5301990 city	N	-99	11451	1
4	Geometry	47560	Mount Vernon	53	Washington	5347560 city	N	-99	17647	1
5	Geometry	50360	Oak Harbor	53	Washington	5350360 city	N	-99	17176	1
6	Geometry	53380	Minot	38	North Dakota	3853380 city	N	1580	34544	2
7	Geometry	40075	Kalispell	30	Montana 3040075 city	N	2955	11917	1
8	Geometry	86220	Williston	38	North Dakota	3886220 city	N	1882	13131	1
9	Geometry	55365	Port Angeles	53	Washington	5355365 city	N	32	17710	1

UPDATE CitiesNoGeo SET POP1990 = 65678 WHERE STATE_CITY = '0659962'

SELECT CITY_NAME, POP1990 FROM CitiesNoGeo WHERE STATE_CITY = '0659962'

Changed the population of Redlands from 60394 to 65678

UPDATE CitiesNoGeo SET POP1990 = 60394 WHERE STATE_CITY = '0659962'

SELECT CITY_NAME, POP1990 FROM CitiesNoGeo WHERE STATE_CITY = '0659962'

Changed the population of Redlands back to 60394


FeatureDatasets:
*first run

The geodatabase does not exist, no need to delete
The geodatabase has been created.
The feature dataset has been created.
The table has been created.

*second run

The geodatabase has been deleted
The geodatabase has been created.
The feature dataset has been created.
The table has been created.

GeodatabaseManagement:

The geodatabase has been created.
The geodatabase has been opened.
The geodatabase has been deleted.

ProcessTopologies (with libXml installed):

USA_Topology
esriTRTPointProperlyInsideArea Origin Class: cities Destination Class: states
esriTRTAreaCoveredByAreaClass Origin Class: counties Destination Class: states

Querying:

Bellingham	52179	-122.468,48.7439
Havre	10201	-109.68,48.5438
Anacortes	11451	-122.631,48.4922
Mount Vernon	17647	-122.316,48.4216
Oak Harbor	17176	-122.629,48.3079
Minot	34544	-101.297,48.2337
Kalispell	11917	-114.318,48.1993
Williston	13131	-103.631,48.1623
Port Angeles	17710	-123.456,48.105


Commerce
Pico Rivera
Maywood
Huntington Park
Bell
West Whittier-Los Nietos
Bell Gardens
Whittier
Cudahy
South Gate
Downey
Santa Fe Springs
South Whittier
Lynwood
Norwalk
La Mirada
Paramount
Bellflower
Cerritos
Artesia
Buena Park
La Palma
Lakewood
Hawaiian Gardens
Cypress
Stanton
Los Alamitos
Long Beach
Seal Beach
Westminster
Huntington Beach


Querying compressed data...

Bellingham	52179	-122.468,48.7439
Havre	10201	-109.68,48.5438
Anacortes	11451	-122.631,48.4922
Mount Vernon	17647	-122.316,48.4216
Oak Harbor	17176	-122.629,48.3079
Minot	34544	-101.297,48.2337
Kalispell	11917	-114.318,48.1993
Williston	13131	-103.631,48.1623
Port Angeles	17710	-123.456,48.105


TableSchema\TableSchemaXML:

*first run

The geodatabase does not exist, no need to delete
The geodatabase has been created.
The streets table has been created.
The StreetType field has been added.
The SpeedLimit field has been deleted.
The StreetType field has been indexed.
Enabled the Trunk Highways subtype
The Default Subtype code is: 99
The Default Subtype code is now: 87
Altered the Trunk Highways subtype
Added Local Streets subtype
Deleted the Local Streets subtype

*second run

The geodatabase has been deleted
The geodatabase has been created.
The streets table has been created.
The StreetType field has been added.
The SpeedLimit field has been deleted.
The StreetType field has been indexed.
Enabled the Trunk Highways subtype
The Default Subtype code is: 99
The Default Subtype code is now: 87
Altered the Trunk Highways subtype
Added Local Streets subtype
Deleted the Local Streets subtype

ShapeBuffer:
Testing Point Shapes, Read

Point test:
x: -122.113 y: 47.746

Testing Point Shapes, Write

Inserted a point.

Testing Line Shapes, Read

Line test:
Points: 1530
Parts: 3
Part 0
0 -118.486, 34.0147
1 -118.475, 34.0227
2 -118.454, 34.0276
3 -118.449, 34.0282
4 -118.443, 34.0297
5 -118.434, 34.0311
6 -118.431, 34.0315
7 -118.422, 34.0318
8 -118.417, 34.0318
9 -118.395, 34.029
10 -118.382, 34.036
11 -118.378, 34.0368
12 -118.376, 34.0364
13 -118.369, 34.0353
14 -118.368, 34.0351
15 -118.362, 34.0338
16 -118.35, 34.0341
17 -118.334, 34.0351
18 -118.309, 34.0371
19 -118.292, 34.037
20 -118.284, 34.0372
21 -118.28, 34.0379
22 -118.274, 34.0383
23 -118.27, 34.0366
24 -118.267, 34.0345
25 -118.263, 34.0325
26 -118.256, 34.0296
27 -118.249, 34.026
28 -118.245, 34.0236
29 -118.242, 34.0238
30 -118.239, 34.0245
31 -118.234, 34.0264
32 -118.232, 34.0274
33 -118.226, 34.0286
34 -118.221, 34.0339
Part 1
35 -118.214, 34.0551
36 -118.207, 34.0536
37 -118.203, 34.0546
38 -118.185, 34.0555
39 -118.173, 34.0607
40 -118.165, 34.0612
41 -118.146, 34.0711
42 -118.134, 34.0714
43 -118.123, 34.0715
44 -118.108, 34.0717

Gap...

925 -95.4095, 29.7775
926 -95.4007, 29.7765
927 -95.3849, 29.7769
928 -95.3762, 29.779
929 -95.3688, 29.7755
930 -95.3656, 29.7699
931 -95.3631, 29.768
932 -95.3594, 29.7671
933 -95.3505, 29.77
934 -95.3491, 29.77
935 -95.3413, 29.7696
936 -95.3362, 29.7691
937 -95.3227, 29.774
938 -95.3154, 29.7742
939 -95.3016, 29.7742
940 -95.2924, 29.7775
941 -95.284, 29.778
Part 2
942 -95.2585, 29.7747
943 -95.2372, 29.7738
944 -95.2213, 29.7706
945 -95.2133, 29.7707
946 -95.1997, 29.7716
947 -95.1838, 29.7706
948 -95.1538, 29.7714
949 -95.1251, 29.7781
950 -95.0922, 29.7899

Gap...

1510 -82.1231, 30.259
1511 -82.1142, 30.2592
1512 -82.1046, 30.2629
1513 -82.0704, 30.2774
1514 -82.0496, 30.2814
1515 -82.0376, 30.2834
1516 -82.0214, 30.2861
1517 -81.9828, 30.289
1518 -81.9586, 30.2912
1519 -81.9272, 30.301
1520 -81.8998, 30.3044
1521 -81.8487, 30.309
1522 -81.7999, 30.3148
1523 -81.7705, 30.3153
1524 -81.7426, 30.3155
1525 -81.7308, 30.3174
1526 -81.7226, 30.3207
1527 -81.6992, 30.3215
1528 -81.6908, 30.3206
1529 -81.6821, 30.3213

Testing Line Shapes, Write

-81.6821, 30.3213
Inserted a line.

Testing Line Shapes with Zs

Line with Z test:
Points: 989
Parts: 1
Part 0
0 86899, 889938, 120.853
1 86902.3, 889951, 121.048
2 86912.5, 889992, 121.627
3 86913.7, 889997, 121.641
4 86924.8, 890041, 121.602
5 86933.7, 890077, 121.318
6 86937.8, 890093, 121.099
7 86944.9, 890122, 121.203
8 86945.2, 890126, 121.216
9 86947.4, 890156, 121.196
10 86950.8, 890204, 121.026
11 86952.1, 890222, 120.961
12 86952.3, 890226, 120.913
13 86955.5, 890270, 123.852
14 86956.5, 890284, 124.422
15 86959.9, 890331, 124.042
16 86962, 890361, 123.806
17 86962.1, 890363, 123.804

Gap...

971 87242.8, 890094, 119.67
972 87243.2, 890087, 119.67
973 87243.3, 890086, 119.67
974 87243.9, 890078, 119.67
975 87244, 890076, 119.67
976 87244, 890076, 119.67
977 87244.2, 890074, 119.67
978 87244.7, 890067, 119.67
979 87244.7, 890067, 119.67
980 87245.2, 890060, 119.67
981 87245.2, 890059, 119.67
982 87245.8, 890052, 119.67
983 87245.9, 890049, 119.67
984 87246.2, 890046, 119.67
985 87246.9, 890036, 119.67
986 87246.9, 890035, 119.69
987 87248, 890021, 120.251
988 87248, 890021, 120.25

Testing Line Shapes, Write

xMin: 85659
yMin: 889938
xMax: 87661.3
yMax: 893346
zMin: 119.67
zMax: 280.799
Inserted a line with z's.
xMin: 85659
yMin: 889938
xMax: 87661.3
yMax: 893346
zMin: 119.67
zMax: 280.799

Testing Polygon Shapes

Polygon test:
Points: 41
Parts: 3
xMin: -71.8667
yMin: 41.3228
xMax: -71.1171
yMax: 42.0137
Part 0
0 -71.7902, 41.6013
1 -71.7926, 41.6418
2 -71.7882, 41.7216
3 -71.7978, 42.0043
4 -71.4974, 42.0093
5 -71.3786, 42.0137
6 -71.3824, 41.9793
7 -71.384, 41.8884
8 -71.3331, 41.896
9 -71.3425, 41.8758
10 -71.3345, 41.8579
11 -71.3455, 41.8132
12 -71.3398, 41.7844
13 -71.3193, 41.7722
14 -71.2666, 41.7497
15 -71.229, 41.7077
16 -71.284, 41.6795
17 -71.3674, 41.7414
18 -71.3936, 41.7612
19 -71.369, 41.7033
20 -71.4192, 41.6522
21 -71.4273, 41.4867
22 -71.4899, 41.3921
23 -71.7223, 41.3273
24 -71.8667, 41.3228
25 -71.8478, 41.3253
26 -71.8369, 41.342
27 -71.846, 41.4039
28 -71.8027, 41.4158
29 -71.7902, 41.6013
Part 1
30 -71.1988, 41.6785
31 -71.1412, 41.6553
32 -71.1171, 41.4931
33 -71.1999, 41.4633
34 -71.1988, 41.6785
Part 2
35 -71.2692, 41.6213
36 -71.2194, 41.6356
37 -71.2387, 41.4748
38 -71.288, 41.4836
39 -71.3495, 41.4459
40 -71.2692, 41.6213

Testing Polygon Shapes, Write

Inserted a polygon.

Testing Multipoint

Multipoint test:
Points: 9
0 6.30115e+006, 1.91301e+006, 435
1 6.30117e+006, 1.91333e+006, 424
2 6.30144e+006, 1.91356e+006, 654
3 6.30145e+006, 1.91284e+006, 454
4 6.30157e+006, 1.91254e+006, 654
5 6.3016e+006, 1.91314e+006, 654
6 6.30183e+006, 1.91279e+006, 556
7 6.30198e+006, 1.91328e+006, 564
8 6.30222e+006, 1.91256e+006, 899

Testing Multipoint Shapes, Write

Inserted a multipoint.

