|
From: <fir...@us...> - 2011-11-14 03:18:21
|
Revision: 53628
http://firebird.svn.sourceforge.net/firebird/?rev=53628&view=rev
Author: firebirds
Date: 2011-11-14 03:18:14 +0000 (Mon, 14 Nov 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-11-13 21:32:12 UTC (rev 53627)
+++ firebird/trunk/ChangeLog 2011-11-14 03:18:14 UTC (rev 53628)
@@ -1,3 +1,32 @@
+ 2011-11-13 21:32 asfernandes
+ M builds/win32/msvc10/engine.vcxproj
+ M builds/win32/msvc10/engine.vcxproj.filters
+ M builds/win32/msvc9/engine.vcproj
+ M builds/win32/preprocess.bat
+ M lang_helpers/gds_codes.ftn
+ M lang_helpers/gds_codes.pas
+ M src/dsql/DdlNodes.epp
+ M src/dsql/DdlNodes.h
+ M src/dsql/ddl.cpp
+ M src/dsql/node.h
+ M src/dsql/parse.y
+ M src/dsql/pass1.cpp
+ M src/include/gen/codetext.h
+ M src/include/gen/iberror.h
+ M src/include/gen/msgs.h
+ M src/include/gen/sql_code.h
+ M src/include/gen/sql_state.h
+ M src/jrd/dyn.epp
+ M src/jrd/dyn.h
+ M src/jrd/dyn_def.epp
+ D src/jrd/dyn_del.epp
+ M src/jrd/dyn_df_proto.h
+ D src/jrd/dyn_dl_proto.h
+ M src/msgs/facilities2.sql
+ M src/msgs/messages2.sql
+ M src/msgs/system_errors2.sql
+Refactor DDL commands: DROP INDEX, DROP FILTER, DROP SHADOW, CREATE/DROP ROLE and DROP USER.
+
2011-11-10 15:03 asfernandes
M src/dsql/parse.y
Cleanup for RECREATE commands.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-11-13 21:32:12 UTC (rev 53627)
+++ firebird/trunk/src/jrd/build_no.h 2011-11-14 03:18:14 UTC (rev 53628)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29611
+ FORMAL BUILD NUMBER:29612
*/
-#define PRODUCT_VER_STRING "3.0.0.29611"
-#define FILE_VER_STRING "WI-T3.0.0.29611"
-#define LICENSE_VER_STRING "WI-T3.0.0.29611"
-#define FILE_VER_NUMBER 3, 0, 0, 29611
+#define PRODUCT_VER_STRING "3.0.0.29612"
+#define FILE_VER_STRING "WI-T3.0.0.29612"
+#define LICENSE_VER_STRING "WI-T3.0.0.29612"
+#define FILE_VER_NUMBER 3, 0, 0, 29612
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29611"
+#define FB_BUILD_NO "29612"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-11-13 21:32:12 UTC (rev 53627)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-11-14 03:18:14 UTC (rev 53628)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29611
+BuildNum=29612
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-11-15 03:20:57
|
Revision: 53634
http://firebird.svn.sourceforge.net/firebird/?rev=53634&view=rev
Author: firebirds
Date: 2011-11-15 03:20:50 +0000 (Tue, 15 Nov 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-11-14 23:10:30 UTC (rev 53633)
+++ firebird/trunk/ChangeLog 2011-11-15 03:20:50 UTC (rev 53634)
@@ -1,3 +1,23 @@
+ 2011-11-14 23:10 hvlad
+ M src/utilities/ntrace/fbtrace.conf
+Update documentation
+
+ 2011-11-14 18:15 asfernandes
+ M src/dsql/DdlNodes.epp
+ M src/dsql/PackageNodes.epp
+ M src/jrd/dyn.epp
+Correction.
+
+ 2011-11-14 18:15 asfernandes
+ M src/dsql/parse.y
+Misc.
+
+ 2011-11-14 18:06 asfernandes
+ M src/dsql/DdlNodes.epp
+ M src/dsql/node.h
+ M src/dsql/parse.y
+Misc.
+
2011-11-13 21:32 asfernandes
M builds/win32/msvc10/engine.vcxproj
M builds/win32/msvc10/engine.vcxproj.filters
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-11-14 23:10:30 UTC (rev 53633)
+++ firebird/trunk/src/jrd/build_no.h 2011-11-15 03:20:50 UTC (rev 53634)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29612
+ FORMAL BUILD NUMBER:29616
*/
-#define PRODUCT_VER_STRING "3.0.0.29612"
-#define FILE_VER_STRING "WI-T3.0.0.29612"
-#define LICENSE_VER_STRING "WI-T3.0.0.29612"
-#define FILE_VER_NUMBER 3, 0, 0, 29612
+#define PRODUCT_VER_STRING "3.0.0.29616"
+#define FILE_VER_STRING "WI-T3.0.0.29616"
+#define LICENSE_VER_STRING "WI-T3.0.0.29616"
+#define FILE_VER_NUMBER 3, 0, 0, 29616
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29612"
+#define FB_BUILD_NO "29616"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-11-14 23:10:30 UTC (rev 53633)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-11-15 03:20:50 UTC (rev 53634)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29612
+BuildNum=29616
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-11-17 03:21:16
|
Revision: 53637
http://firebird.svn.sourceforge.net/firebird/?rev=53637&view=rev
Author: firebirds
Date: 2011-11-17 03:21:09 +0000 (Thu, 17 Nov 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-11-16 17:41:27 UTC (rev 53636)
+++ firebird/trunk/ChangeLog 2011-11-17 03:21:09 UTC (rev 53637)
@@ -1,3 +1,7 @@
+ 2011-11-16 17:41 dimitr
+ M src/jrd/GlobalRWLock.cpp
+Misc.
+
2011-11-14 23:10 hvlad
M src/utilities/ntrace/fbtrace.conf
Update documentation
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-11-16 17:41:27 UTC (rev 53636)
+++ firebird/trunk/src/jrd/build_no.h 2011-11-17 03:21:09 UTC (rev 53637)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29616
+ FORMAL BUILD NUMBER:29617
*/
-#define PRODUCT_VER_STRING "3.0.0.29616"
-#define FILE_VER_STRING "WI-T3.0.0.29616"
-#define LICENSE_VER_STRING "WI-T3.0.0.29616"
-#define FILE_VER_NUMBER 3, 0, 0, 29616
+#define PRODUCT_VER_STRING "3.0.0.29617"
+#define FILE_VER_STRING "WI-T3.0.0.29617"
+#define LICENSE_VER_STRING "WI-T3.0.0.29617"
+#define FILE_VER_NUMBER 3, 0, 0, 29617
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29616"
+#define FB_BUILD_NO "29617"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-11-16 17:41:27 UTC (rev 53636)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-11-17 03:21:09 UTC (rev 53637)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29616
+BuildNum=29617
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-11-18 03:20:49
|
Revision: 53639
http://firebird.svn.sourceforge.net/firebird/?rev=53639&view=rev
Author: firebirds
Date: 2011-11-18 03:20:43 +0000 (Fri, 18 Nov 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-11-18 01:07:26 UTC (rev 53638)
+++ firebird/trunk/ChangeLog 2011-11-18 03:20:43 UTC (rev 53639)
@@ -1,3 +1,9 @@
+ 2011-11-18 01:07 asfernandes
+ M src/burp/backup.epp
+ M src/burp/canonical.cpp
+ M src/burp/restore.epp
+Fixed backup/restore of BOOLEAN columns.
+
2011-11-16 17:41 dimitr
M src/jrd/GlobalRWLock.cpp
Misc.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-11-18 01:07:26 UTC (rev 53638)
+++ firebird/trunk/src/jrd/build_no.h 2011-11-18 03:20:43 UTC (rev 53639)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29617
+ FORMAL BUILD NUMBER:29618
*/
-#define PRODUCT_VER_STRING "3.0.0.29617"
-#define FILE_VER_STRING "WI-T3.0.0.29617"
-#define LICENSE_VER_STRING "WI-T3.0.0.29617"
-#define FILE_VER_NUMBER 3, 0, 0, 29617
+#define PRODUCT_VER_STRING "3.0.0.29618"
+#define FILE_VER_STRING "WI-T3.0.0.29618"
+#define LICENSE_VER_STRING "WI-T3.0.0.29618"
+#define FILE_VER_NUMBER 3, 0, 0, 29618
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29617"
+#define FB_BUILD_NO "29618"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-11-18 01:07:26 UTC (rev 53638)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-11-18 03:20:43 UTC (rev 53639)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29617
+BuildNum=29618
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <asf...@us...> - 2011-11-22 16:33:37
|
Revision: 53641
http://firebird.svn.sourceforge.net/firebird/?rev=53641&view=rev
Author: asfernandes
Date: 2011-11-22 16:33:25 +0000 (Tue, 22 Nov 2011)
Log Message:
-----------
DDL refactor: ALTER EXTERNAL FUNCTION, ALTER INDEX, SET STATISTICS, CREATE SHADOW, ALTER ROLE, CREATE/ALTER DATABASE.
Modified Paths:
--------------
firebird/trunk/builds/win32/msvc10/engine.vcxproj
firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters
firebird/trunk/builds/win32/msvc8/engine.vcproj
firebird/trunk/builds/win32/msvc9/engine.vcproj
firebird/trunk/builds/win32/preprocess.bat
firebird/trunk/lang_helpers/gds_codes.ftn
firebird/trunk/lang_helpers/gds_codes.pas
firebird/trunk/src/common/classes/MetaName.h
firebird/trunk/src/dsql/BlrWriter.cpp
firebird/trunk/src/dsql/BlrWriter.h
firebird/trunk/src/dsql/DdlNodes.epp
firebird/trunk/src/dsql/DdlNodes.h
firebird/trunk/src/dsql/Nodes.h
firebird/trunk/src/dsql/Parser.h
firebird/trunk/src/dsql/ddl.cpp
firebird/trunk/src/dsql/dsql.h
firebird/trunk/src/dsql/node.h
firebird/trunk/src/dsql/parse.y
firebird/trunk/src/dsql/pass1.cpp
firebird/trunk/src/include/gen/codetext.h
firebird/trunk/src/include/gen/iberror.h
firebird/trunk/src/include/gen/msgs.h
firebird/trunk/src/include/gen/sql_code.h
firebird/trunk/src/include/gen/sql_state.h
firebird/trunk/src/jrd/drq.h
firebird/trunk/src/jrd/dyn.epp
firebird/trunk/src/jrd/dyn_def.epp
firebird/trunk/src/jrd/dyn_df_proto.h
firebird/trunk/src/jrd/dyn_util.epp
firebird/trunk/src/msgs/facilities2.sql
firebird/trunk/src/msgs/messages2.sql
firebird/trunk/src/msgs/system_errors2.sql
Removed Paths:
-------------
firebird/trunk/src/jrd/dyn_md_proto.h
firebird/trunk/src/jrd/dyn_mod.epp
Modified: firebird/trunk/builds/win32/msvc10/engine.vcxproj
===================================================================
--- firebird/trunk/builds/win32/msvc10/engine.vcxproj 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/builds/win32/msvc10/engine.vcxproj 2011-11-22 16:33:25 UTC (rev 53641)
@@ -26,7 +26,6 @@
<ClCompile Include="..\..\..\gen\jrd\dpm.cpp" />
<ClCompile Include="..\..\..\gen\jrd\dyn.cpp" />
<ClCompile Include="..\..\..\gen\jrd\dyn_def.cpp" />
- <ClCompile Include="..\..\..\gen\jrd\dyn_mod.cpp" />
<ClCompile Include="..\..\..\gen\jrd\dyn_util.cpp" />
<ClCompile Include="..\..\..\gen\jrd\fun.cpp" />
<ClCompile Include="..\..\..\gen\jrd\Function.cpp" />
@@ -219,7 +218,6 @@
<ClInclude Include="..\..\..\src\jrd\drq.h" />
<ClInclude Include="..\..\..\src\jrd\dyn.h" />
<ClInclude Include="..\..\..\src\jrd\dyn_df_proto.h" />
- <ClInclude Include="..\..\..\src\jrd\dyn_md_proto.h" />
<ClInclude Include="..\..\..\src\jrd\dyn_proto.h" />
<ClInclude Include="..\..\..\src\jrd\dyn_ut_proto.h" />
<ClInclude Include="..\..\..\src\jrd\ErrorImpl.h" />
@@ -351,7 +349,6 @@
<None Include="..\..\..\src\jrd\dpm.epp" />
<None Include="..\..\..\src\jrd\dyn.epp" />
<None Include="..\..\..\src\jrd\dyn_def.epp" />
- <None Include="..\..\..\src\jrd\dyn_mod.epp" />
<None Include="..\..\..\src\jrd\dyn_util.epp" />
<None Include="..\..\..\src\jrd\fun.epp" />
<None Include="..\..\..\src\jrd\Function.epp" />
Modified: firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters
===================================================================
--- firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters 2011-11-22 16:33:25 UTC (rev 53641)
@@ -417,9 +417,6 @@
<ClCompile Include="..\..\..\gen\jrd\dyn_def.cpp">
<Filter>JRD files\GPRE cpp</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\gen\jrd\dyn_mod.cpp">
- <Filter>JRD files\GPRE cpp</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\gen\jrd\dyn_util.cpp">
<Filter>JRD files\GPRE cpp</Filter>
</ClCompile>
@@ -683,9 +680,6 @@
<ClInclude Include="..\..\..\src\jrd\dyn_df_proto.h">
<Filter>Header files</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\src\jrd\dyn_md_proto.h">
- <Filter>Header files</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\src\jrd\dyn_proto.h">
<Filter>Header files</Filter>
</ClInclude>
@@ -1021,9 +1015,6 @@
<None Include="..\..\..\src\jrd\dyn_def.epp">
<Filter>JRD files\GPRE files</Filter>
</None>
- <None Include="..\..\..\src\jrd\dyn_mod.epp">
- <Filter>JRD files\GPRE files</Filter>
- </None>
<None Include="..\..\..\src\jrd\dyn_util.epp">
<Filter>JRD files\GPRE files</Filter>
</None>
Modified: firebird/trunk/builds/win32/msvc8/engine.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc8/engine.vcproj 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/builds/win32/msvc8/engine.vcproj 2011-11-22 16:33:25 UTC (rev 53641)
@@ -735,10 +735,6 @@
>
</File>
<File
- RelativePath="..\..\..\gen\jrd\dyn_mod.cpp"
- >
- </File>
- <File
RelativePath="..\..\..\gen\jrd\dyn_util.cpp"
>
</File>
@@ -795,10 +791,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\jrd\dyn_mod.epp"
- >
- </File>
- <File
RelativePath="..\..\..\src\jrd\dyn_util.epp"
>
</File>
@@ -1048,10 +1040,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\jrd\dyn_md_proto.h"
- >
- </File>
- <File
RelativePath="..\..\..\src\jrd\dyn_proto.h"
>
</File>
Modified: firebird/trunk/builds/win32/msvc9/engine.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc9/engine.vcproj 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/builds/win32/msvc9/engine.vcproj 2011-11-22 16:33:25 UTC (rev 53641)
@@ -731,10 +731,6 @@
>
</File>
<File
- RelativePath="..\..\..\gen\jrd\dyn_mod.cpp"
- >
- </File>
- <File
RelativePath="..\..\..\gen\jrd\dyn_util.cpp"
>
</File>
@@ -787,10 +783,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\jrd\dyn_mod.epp"
- >
- </File>
- <File
RelativePath="..\..\..\src\jrd\dyn_util.epp"
>
</File>
@@ -1036,10 +1028,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\jrd\dyn_md_proto.h"
- >
- </File>
- <File
RelativePath="..\..\..\src\jrd\dyn_proto.h"
>
</File>
Modified: firebird/trunk/builds/win32/preprocess.bat
===================================================================
--- firebird/trunk/builds/win32/preprocess.bat 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/builds/win32/preprocess.bat 2011-11-22 16:33:25 UTC (rev 53641)
@@ -67,7 +67,7 @@
@for %%i in (array, blob) do @call :PREPROCESS yvalve %%i
@for %%i in (metd, DdlNodes, PackageNodes) do @call :PREPROCESS dsql %%i -gds_cxx
@for %%i in (gpre_meta) do @call :PREPROCESS gpre/std %%i
-@for %%i in (dfw, dpm, dyn, dyn_def, dyn_mod, dyn_util, fun, grant, ini, met, pcmet, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx
+@for %%i in (dfw, dpm, dyn, dyn_def, dyn_util, fun, grant, ini, met, pcmet, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx
@for %%i in (stats) do @call :PREPROCESS utilities %%i
@goto :EOF
@@ -81,7 +81,7 @@
@for %%i in (metd) do @call :PREPROCESS dsql %%i -gds_cxx
@for %%i in (DdlNodes, PackageNodes) do @call :PREPROCESS dsql %%i -gds_cxx
@for %%i in (gpre_meta) do @call :PREPROCESS gpre/std %%i
-@for %%i in (dfw, dpm, dyn, dyn_def, dyn_mod, dyn_util, fun, grant, ini, met, pcmet, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx
+@for %%i in (dfw, dpm, dyn, dyn_def, dyn_util, fun, grant, ini, met, pcmet, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx
@for %%i in (codes) do @call :PREPROCESS misc %%i
@for %%i in (build_file) do @call :PREPROCESS msgs %%i
@for %%i in (help, meta, proc, show) do @call :PREPROCESS qli %%i
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2011-11-22 16:33:25 UTC (rev 53641)
@@ -2130,6 +2130,14 @@
PARAMETER (GDS__dsql_drop_user_failed = 336397309)
INTEGER*4 GDS__dsql_create_role_failed
PARAMETER (GDS__dsql_create_role_failed = 336397310)
+ INTEGER*4 GDS__dsql_alter_role_failed
+ PARAMETER (GDS__dsql_alter_role_failed = 336397311)
+ INTEGER*4 GDS__dsql_alter_index_failed
+ PARAMETER (GDS__dsql_alter_index_failed = 336397312)
+ INTEGER*4 GDS__dsql_alter_database_failed
+ PARAMETER (GDS__dsql_alter_database_failed = 336397313)
+ INTEGER*4 GDS__dsql_create_shadow_failed
+ PARAMETER (GDS__dsql_create_shadow_failed = 336397314)
INTEGER*4 GDS__gsec_cant_open_db
PARAMETER (GDS__gsec_cant_open_db = 336723983)
INTEGER*4 GDS__gsec_switches_error
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2011-11-22 16:33:25 UTC (rev 53641)
@@ -1072,6 +1072,10 @@
gds_dsql_drop_role_failed = 336397308;
gds_dsql_drop_user_failed = 336397309;
gds_dsql_create_role_failed = 336397310;
+ gds_dsql_alter_role_failed = 336397311;
+ gds_dsql_alter_index_failed = 336397312;
+ gds_dsql_alter_database_failed = 336397313;
+ gds_dsql_create_shadow_failed = 336397314;
gds_gsec_cant_open_db = 336723983;
gds_gsec_switches_error = 336723984;
gds_gsec_no_op_spec = 336723985;
Modified: firebird/trunk/src/common/classes/MetaName.h
===================================================================
--- firebird/trunk/src/common/classes/MetaName.h 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/src/common/classes/MetaName.h 2011-11-22 16:33:25 UTC (rev 53641)
@@ -105,19 +105,6 @@
static void adjustLength(const char* const s, size_t& l);
};
-// This class is used to simplify calls from GDML, when pointer to MetaName
-// should be passed to some function, at the same time reflecting changes in
-// associated GDML variable (database field).
-class MetaNameProxy : public MetaName
-{
- char* target;
-public:
- explicit MetaNameProxy(char* s)
- : Firebird::MetaName(s), target(s)
- { }
- ~MetaNameProxy() { strcpy(target, c_str()); }
-};
-
typedef Pair<Full<MetaName, MetaName> > MetaNamePair;
} // namespace Firebird
Modified: firebird/trunk/src/dsql/BlrWriter.cpp
===================================================================
--- firebird/trunk/src/dsql/BlrWriter.cpp 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/src/dsql/BlrWriter.cpp 2011-11-22 16:33:25 UTC (rev 53641)
@@ -84,18 +84,6 @@
appendULong(val);
}
-void BlrWriter::appendFileLength(ULONG length)
-{
- appendUChar(isc_dyn_file_length);
- appendULongWithLength(length);
-}
-
-void BlrWriter::appendFileStart(ULONG start)
-{
- appendUChar(isc_dyn_file_start);
- appendULongWithLength(start);
-}
-
// Write out a string of blr as part of a ddl string, as in a view or computed field definition.
void BlrWriter::beginBlr(UCHAR verb)
{
Modified: firebird/trunk/src/dsql/BlrWriter.h
===================================================================
--- firebird/trunk/src/dsql/BlrWriter.h 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/src/dsql/BlrWriter.h 2011-11-22 16:33:25 UTC (rev 53641)
@@ -122,8 +122,6 @@
void appendNumber(UCHAR verb, SSHORT number);
void appendUShortWithLength(USHORT val);
void appendULongWithLength(ULONG val);
- void appendFileLength(ULONG length);
- void appendFileStart(ULONG start);
void beginBlr(UCHAR verb);
void endBlr();
Modified: firebird/trunk/src/dsql/DdlNodes.epp
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.epp 2011-11-20 09:45:00 UTC (rev 53640)
+++ firebird/trunk/src/dsql/DdlNodes.epp 2011-11-22 16:33:25 UTC (rev 53641)
@@ -94,6 +94,9 @@
static void clearPermanentField(dsql_rel* relation, bool permanent);
static void deleteKeyConstraint(thread_db* tdbb, jrd_tra* transaction,
const MetaName& relationName, const MetaName& constraintName, const MetaName& indexName);
+static void defineFile(thread_db* tdbb, jrd_tra* transaction, SLONG shadowNumber, bool manualShadow,
+ bool conditionalShadow, SLONG& dbAlloc,
+ const PathName& name, SLONG start, SLONG length);
static bool fieldExists(thread_db* tdbb, jrd_tra* transaction, const MetaName& relationName,
const MetaName& fieldName);
static void makeRelationScopeName(const MetaName& name, const rel_t type, string& message);
@@ -330,6 +333,46 @@
}
}
+// Define a database or shadow file.
+static void defineFile(thread_db* tdbb, jrd_tra* transaction, SLONG shadowNumber, bool manualShadow,
+ bool conditionalShadow, SLONG& dbAlloc, const PathName& name, SLONG start, SLONG length)
+{
+ PathName expandedName = name;
+
+ if (!ISC_expand_filename(expandedName, false))
+ status_exception::raise(Arg::Gds(ENCODE_ISC_MSG(231, DYN_MSG_FAC))); // File name is invalid.
+
+ if (tdbb->getDatabase()->dbb_filename == expandedName)
+ status_exception::raise(Arg::Gds(ENCODE_ISC_MSG(166, DYN_MSG_FAC)));
+
+ AutoCacheRequest request(tdbb, drq_l_files, DYN_REQUESTS);
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ FIRST 1 X IN RDB$FILES
+ WITH X.RDB$FILE_NAME EQ expandedName.c_str()
+ {
+ status_exception::raise(Arg::Gds(ENCODE_ISC_MSG(166, DYN_MSG_FAC)));
+ }
+ END_FOR
+
+ request.reset(tdbb, drq_s_files, DYN_REQUESTS);
+
+ STORE(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ X IN RDB$FILES
+ {
+ expandedName.copyTo(X.RDB$FILE_NAME, sizeof(X.RDB$FILE_NAME));
+ X.RDB$SHADOW_NUMBER = shadowNumber;
+ X.RDB$FILE_FLAGS = (manualShadow ? FILE_manual : 0) |
+ (conditionalShadow ? FILE_conditional : 0);
+
+ dbAlloc = MAX(dbAlloc, start);
+ X.RDB$FILE_START = dbAlloc;
+ X.RDB$FILE_LENGTH = length;
+ dbAlloc += length;
+ }
+ END_STORE
+}
+
// Checks to see if the given field already exists in a relation.
static bool fieldExists(thread_db* tdbb, jrd_tra* transaction, const MetaName& relationName,
const MetaName& fieldName)
@@ -1501,21 +1544,13 @@
strcpy(FUN.RDB$ENGINE_NAME, external->engine.c_str());
if (external->udfModule.length() >= sizeof(FUN.RDB$MODULE_NAME))
- {
- status_exception::raise(
- Arg::Gds(isc_arith_except) <<
- Arg::Gds(isc_string_truncation));
- }
+ status_exception::raise(Arg::Gds(isc_dyn_name_longer));
FUN.RDB$MODULE_NAME.NULL = (SSHORT) external->udfModule.isEmpty();
strcpy(FUN.RDB$MODULE_NAME, external->udfModule.c_str());
if (external->name.length() >= sizeof(FUN.RDB$ENTRYPOINT))
- {
- status_exception::raise(
- Arg::Gds(isc_arith_except) <<
- Arg::Gds(isc_string_truncation));
- }
+ status_exception::raise(Arg::Gds(isc_dyn_name_longer));
FUN.RDB$ENTRYPOINT.NULL = (SSHORT) external->name.isEmpty();
strcpy(FUN.RDB$ENTRYPOINT, external->name.c_str());
@@ -1850,6 +1885,88 @@
//----------------------
+void AlterExternalFunctionNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
+{
+ text.printf(
+ "AlterExternalFunctionNode\n"
+ " name: '%s'\n"
+ " entrypoint: '%s'\n"
+ " module: '%s'\n",
+ name.c_str(), clauses.name.c_str(), clauses.udfModule.c_str());
+}
+
+// Allow changing the entry point and/or the module name of a UDF.
+void AlterExternalFunctionNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
+ jrd_tra* transaction)
+{
+ if (clauses.name.isEmpty() && clauses.udfModule.isEmpty())
+ {
+ status_exception::raise(
+ Arg::Gds(isc_sqlerr) << Arg::Num(-104) /*** FIXME: <<
+ // Unexpected end of command
+ Arg::Gds(isc_command_end_err2) << Arg::Num(node->nod_line) <<
+ Arg::Num(node->nod_column + obj_name->str_length)***/); // + strlen("FUNCTION")
+ }
+
+ // run all statements under savepoint control
+ AutoSavePoint savePoint(tdbb, transaction);
+
+ AutoCacheRequest request(tdbb, drq_m_fun, DYN_REQUESTS);
+ bool found = false;
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ FUN IN RDB$FUNCTIONS
+ WITH FUN.RDB$FUNCTION_NAME EQ name.c_str() AND
+ FUN.RDB$PACKAGE_NAME MISSING
+ {
+ found = true;
+
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE, DDL_TRIGGER_ALTER_FUNCTION, name);
+
+ if (!FUN.RDB$ENGINE_NAME.NULL || !FUN.RDB$FUNCTION_BLR.NULL)
+ status_exception::raise(Arg::Gds(isc_dyn_newfc_oldsyntax) << name);
+
+ MODIFY FUN
+ if (clauses.name.hasData())
+ {
+ if (clauses.name.length() >= sizeof(FUN.RDB$ENTRYPOINT))
+ status_exception::raise(Arg::Gds(isc_dyn_name_longer));
+
+ FUN.RDB$ENTRYPOINT.NULL = FALSE;
+ strcpy(FUN.RDB$ENTRYPOINT, clauses.name.c_str());
+ }
+
+ if (clauses.udfModule.hasData())
+ {
+ if (clauses.udfModule.length() >= sizeof(FUN.RDB$MODULE_NAME))
+ status_exception::raise(Arg::Gds(isc_dyn_name_longer));
+
+ FUN.RDB$MODULE_NAME.NULL = FALSE;
+ strcpy(FUN.RDB$MODULE_NAME, clauses.udfModule.c_str());
+ }
+ END_MODIFY
+ }
+ END_FOR
+
+ if (found)
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_AFTER, DDL_TRIGGER_ALTER_FUNCTION, name);
+ else
+ {
+ // msg 41: "Function %s not found"
+ status_exception::raise(Arg::Gds(ENCODE_ISC_MSG(41, DYN_MSG_FAC)) << name);
+ }
+
+ savePoint.release(); // everything is ok
+
+ // Update DSQL cache
+ METD_drop_function(transaction, QualifiedName(name, ""));
+ MET_dsql_cache_release(tdbb, SYM_udf, name, "");
+}
+
+
+//----------------------
+
+
void DropFunctionNode::dropArguments(thread_db* tdbb, jrd_tra* transaction,
const MetaName& functionName, const MetaName& packageName)
{
@@ -2300,11 +2417,7 @@
strcpy(P.RDB$ENGINE_NAME, external->engine.c_str());
if (external->name.length() >= sizeof(P.RDB$ENTRYPOINT))
- {
- status_exception::raise(
- Arg::Gds(isc_arith_except) <<
- Arg::Gds(isc_string_truncation));
- }
+ status_exception::raise(Arg::Gds(isc_dyn_name_longer));
P.RDB$ENTRYPOINT.NULL = (SSHORT) external->name.isEmpty();
strcpy(P.RDB$ENTRYPOINT, external->name.c_str());
@@ -2832,11 +2945,7 @@
strcpy(TRG.RDB$ENGINE_NAME, external->engine.c_str());
if (external->name.length() >= sizeof(TRG.RDB$ENTRYPOINT))
- {
- status_exception::raise(
- Arg::Gds(isc_arith_except) <<
- Arg::Gds(isc_string_truncation));
- }
+ status_exception::raise(Arg::Gds(isc_dyn_name_longer));
TRG.RDB$ENTRYPOINT.NULL = (SSHORT) external->name.isEmpty();
strcpy(TRG.RDB$ENTRYPOINT, external->name.c_str());
@@ -3752,7 +3861,7 @@
default:
fb_assert(FALSE);
- errorCode = 87; // MODIFY RDB$FIELDS FAILED
+ errorCode = ENCODE_ISC_MSG(87, DYN_MSG_FAC); // MODIFY RDB$FIELDS FAILED
break;
}
break;
@@ -3947,14 +4056,14 @@
default:
fb_assert(FALSE);
- errorCode = 87; // MODIFY RDB$FIELDS FAILED
+ errorCode = ENCODE_ISC_MSG(87, DYN_MSG_FAC); // MODIFY RDB$FIELDS FAILED
break;
}
break;
default:
fb_assert(FALSE);
- errorCode = 87; // MODIFY RDB$FIELDS FAILED
+ errorCode = ENCODE_ISC_MSG(87, DYN_MSG_FAC); // MODIFY RDB$FIELDS FAILED
break;
}
@@ -8738,6 +8847,100 @@
//----------------------
+void AlterIndexNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
+{
+ text.printf(
+ "AlterIndexNode\n"
+ " name: '%s'\n"
+ " active: '%d'\n",
+ name.c_str(), active);
+}
+
+void AlterIndexNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
+{
+ // run all statements under savepoint control
+ AutoSavePoint savePoint(tdbb, transaction);
+
+ AutoCacheRequest request(tdbb, drq_m_index, DYN_REQUESTS);
+ bool found = false;
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ IDX IN RDB$INDICES
+ WITH IDX.RDB$INDEX_NAME EQ name.c_str()
+ {
+ found = true;
+
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE, DDL_TRIGGER_ALTER_INDEX, name);
+
+ MODIFY IDX
+ IDX.RDB$INDEX_INACTIVE.NULL = FALSE;
+ IDX.RDB$INDEX_INACTIVE = active ? FALSE : TRUE;
+ END_MODIFY
+ }
+ END_FOR
+
+ if (found)
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_AFTER, DDL_TRIGGER_ALTER_INDEX, name);
+ else
+ {
+ // msg 48: "Index not found"
+ status_exception::raise(Arg::Gds(ENCODE_ISC_MSG(48, DYN_MSG_FAC)));
+ }
+
+ savePoint.release(); // everything is ok
+}
+
+
+//----------------------
+
+
+void SetStatisticsNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
+{
+ text.printf(
+ "SetStatisticsNode\n"
+ " name: '%s'\n",
+ name.c_str());
+}
+
+void SetStatisticsNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
+{
+ // run all statements under savepoint control
+ AutoSavePoint savePoint(tdbb, transaction);
+
+ AutoCacheRequest request(tdbb, drq_m_set_statistics, DYN_REQUESTS);
+ bool found = false;
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ IDX IN RDB$INDICES
+ WITH IDX.RDB$INDEX_NAME EQ name.c_str()
+ {
+ found = true;
+
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE, DDL_TRIGGER_ALTER_INDEX, name);
+
+ MODIFY IDX
+ // For V4 index selectivity can be set only to -1.
+ IDX.RDB$STATISTICS.NULL = FALSE;
+ IDX.RDB$STATISTICS = -1.0;
+ END_MODIFY
+ }
+ END_FOR
+
+ if (found)
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_AFTER, DDL_TRIGGER_ALTER_INDEX, name);
+ else
+ {
+ // msg 48: "Index not found"
+ status_exception::raise(Arg::Gds(ENCODE_ISC_MSG(48, DYN_MSG_FAC)));
+ }
+
+ savePoint.release(); // everything is ok
+}
+
+
+//----------------------
+
+
// Delete the records in RDB$INDEX_SEGMENTS pertaining to an index.
bool DropIndexNode::deleteSegmentRecords(thread_db* tdbb, jrd_tra* transaction,
const MetaName& name)
@@ -8844,6 +9047,71 @@
//----------------------
+void CreateShadowNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
+{
+ text.printf(
+ "CreateShadowNode\n"
+ " number: '%d'\n",
+ number);
+}
+
+void CreateShadowNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
+{
+ if (!tdbb->getAttachment()->locksmith())
+ status_exception::raise(Arg::Gds(isc_adm_task_denied));
+
+ // Should be caught by the parser.
+ if (number == 0)
+ {
+ status_exception::raise(
+ Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
+ Arg::Gds(isc_dsql_command_err) <<
+ Arg::Gds(isc_dsql_shadow_number_err));
+ }
+
+ // run all statements under savepoint control
+ AutoSavePoint savePoint(tdbb, transaction);
+
+ // If a shadow set identified by the shadow number already exists return error.
+
+ AutoCacheRequest request(tdbb, drq_l_shadow, DYN_REQUESTS);
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ FIRST 1 X IN RDB$FILES
+ WITH X.RDB$SHADOW_NUMBER EQ number
+ {
+ // msg 165: "Shadow %ld already exists"
+ status_exception::raise(Arg::Gds(ENCODE_ISC_MSG(165, DYN_MSG_FAC)) << Arg::Num(number));
+ }
+ END_FOR
+
+ SLONG start = 0;
+
+ for (DbFileClause** i = files.begin(); i != files.end(); ++i)
+ {
+ bool first = i == files.begin();
+ DbFileClause* file = *i;
+
+ if (!first && i[-1]->length == 0 && file->start == 0)
+ {
+ // Preceding file did not specify length, so %s must include starting page number
+ status_exception::raise(
+ Arg::Gds(isc_sqlerr) << Arg::Num(-607) <<
+ Arg::Gds(isc_dsql_command_err) <<
+ Arg::Gds(isc_dsql_file_length_err) << file->name);
+ }
+
+ defineFile(tdbb, transaction, number, manual && first, conditional && first,
+ start, file->name, file->start, file->length);
+ }
+
+ savePoint.release(); // everything is ok
+}
+
+
+//----------------------
+
+
void DropShadowNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
{
text.printf(
@@ -8983,6 +9251,62 @@
//----------------------
+void AlterRoleNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
+{
+ text.printf(
+ "AlterRoleNode\n"
+ " name: '%s'\n"
+ " map: '%d'\n",
+ name.c_str(), map);
+}
+
+// It's purpose is to add/drop mapping from OS security name to DB security object.
+void AlterRoleNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
+{
+ // run all statements under savepoint control
+ AutoSavePoint savePoint(tdbb, transaction);
+
+ // This is FB 2.5 limited implementation!
+ // Later it should work with new system table, something like RDB$MAPPING.
+
+ if (name != ADMIN_ROLE)
+ status_exception::raise(Arg::Gds(isc_wish_list));
+
+ if (!(tdbb->getAttachment() && tdbb->getAttachment()->locksmith()))
+ status_exception::raise(Arg::Gds(isc_adm_task_denied));
+
+ AutoCacheRequest request(tdbb, drq_m_map, DYN_REQUESTS);
+ bool found = false;
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ ROL IN RDB$ROLES
+ WITH ROL.RDB$ROLE_NAME EQ name.c_str()
+ {
+ found = true;
+
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE, DDL_TRIGGER_ALTER_ROLE, name);
+
+ MODIFY ROL
+ ROL.RDB$SYSTEM_FLAG = ROLE_FLAG_DBO | (map ? ROLE_FLAG_MAY_TRUST : 0);
+ END_MODIFY
+ }
+ END_FOR
+
+ if (found)
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_AFTER, DDL_TRIGGER_ALTER_ROLE, name);
+ else
+ {
+ status_exception::raise(
+ Arg::Gds(isc_random) << Arg::Str("Missing RDB$ADMIN role in the database"));
+ }
+
+ savePoint.release(); // everything is ok
+}
+
+
+//----------------------
+
+
void DropRoleNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
{
text.printf(
@@ -9088,4 +9412,196 @@
}
+//----------------------
+
+
+void AlterDatabaseNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
+{
+ text.printf(
+ "AlterDatabaseNode\n");
+}
+
+void AlterDatabaseNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch,
+ jrd_tra* transaction)
+{
+ if (!tdbb->getAttachment()->locksmith())
+ status_exception::raise(Arg::Gds(isc_adm_task_denied));
+
+ // run all statements under savepoint control
+ AutoSavePoint savePoint(tdbb, transaction);
+
+ Attachment* attachment = transaction->tra_attachment;
+ SLONG dbAlloc = PageSpace::maxAlloc(tdbb->getDatabase());
+ SLONG start = create ? createLength + 1 : 0;
+ AutoCacheRequest request(tdbb, drq_m_database, DYN_REQUESTS);
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ DBB IN RDB$DATABASE
+ {
+ MODIFY DBB USING
+ if (clauses & CLAUSE_DROP_DIFFERENCE)
+ changeBackupMode(tdbb, transaction, CLAUSE_DROP_DIFFERENCE);
+
+ for (DbFileClause** i = files.begin(); i != files.end(); ++i)
+ {
+ DbFileClause* file = *i;
+
+ start = MAX(start, file->start);
+ defineFile(tdbb, transaction, 0, false, false, dbAlloc,
+ file->name, start, file->length);
+ start += file->length;
+ }
+
+ if (differenceFile.hasData())
+ defineDifference(tdbb, transaction, differenceFile);
+
+ if (setDefaultCharSet.hasData())
+ {
+ //// TODO: Validate!
+ DBB.RDB$CHARACTER_SET_NAME.NULL = FALSE;
+ strcpy(DBB.RDB$CHARACTER_SET_NAME, setDefaultCharSet.c_str());
+ }
+
+ if (!DBB.RDB$CHARACTER_SET_NAME.NULL && setDefaultCollation.hasData())
+ {
+ string sql;
+ sql.printf("alter character set \"%s\" set default collation \"%s\"",
+ PreparedStatement::escapeName(DBB.RDB$CHARACTER_SET_NAME).c_str(),
+ PreparedStatement::escapeName(setDefaultCollation).c_str());
+
+ AutoPtr<PreparedStatement> ps(attachment->prepareStatement(tdbb, transaction, sql));
+ ps->execute(tdbb, transaction);
+ }
+
+ if (clauses & CLAUSE_BEGIN_BACKUP)
+ changeBackupMode(tdbb, transaction, CLAUSE_BEGIN_BACKUP);
+
+ if (clauses & CLAUSE_END_BACKUP)
+ changeBackupMode(tdbb, transaction, CLAUSE_END_BACKUP);
+ END_MODIFY
+ }
+ END_FOR
+
+ savePoint.release(); // everything is ok
+}
+
+// Drop backup difference file for the database, begin or end backup.
+void AlterDatabaseNode::changeBackupMode(thread_db* tdbb, jrd_tra* transaction, unsigned clause)
+{
+ AutoCacheRequest request(tdbb, drq_d_difference, DYN_REQUESTS);
+ bool invalidState = false;
+ bool found = false;
+
+ FOR(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ X IN RDB$FILES
+ {
+ if (X.RDB$FILE_FLAGS & FILE_difference)
+ {
+ found = true;
+
+ switch (clause)
+ {
+ case CLAUSE_DROP_DIFFERENCE:
+ ERASE X;
+ break;
+
+ case CLAUSE_BEGIN_BACKUP:
+ if (X.RDB$FILE_FLAGS & FILE_backing_up)
+ invalidState = true;
+ else
+ {
+ MODIFY X USING
+ X.RDB$FILE_FLAGS |= FILE_backing_up;
+ END_MODIFY
+ }
+ break;
+
+ case CLAUSE_END_BACKUP:
+ if (X.RDB$FILE_FLAGS & FILE_backing_up)
+ {
+ if (X.RDB$FILE_NAME.NULL)
+ ERASE X;
+ else
+ {
+ MODIFY X USING
+ X.RDB$FILE_FLAGS &= ~FILE_backing_up;
+ END_MODIFY
+ }
+ }
+ else
+ invalidState = true;
+ break;
+ }
+ }
+ }
+ END_FOR
+
+ if (!found && clause == CLAUSE_BEGIN_BACKUP)
+ {
+ request.reset(tdbb, drq_s2_difference, DYN_REQUESTS);
+
+ STORE(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ X IN RDB$FILES
+ {
+ X.RDB$FILE_FLAGS = FILE_difference | FILE_backing_up;
+ X.RDB$FILE_START = 0;
+ }
+ END_STORE
+
+ found = true;
+ }
+
+ if (invalidState)
+ {
+ // msg 217: "Database is already in the physical backup mode"
+ // msg 218: "Database is not in the physical backup mode"
+ status_exception::raise(
+ Arg::Gds(ENCODE_ISC_MSG(clause == CLAUSE_BEGIN_BACKUP ? 217 : 218, DYN_MSG_FAC)));
+ }
+
+ if (!found)
+ {
+ // msg 218: "Database is not in the physical backup mode"
+ // msg 215: "Difference file is not defined"
+ status_exception::raise(
+ Arg::Gds(ENCODE_ISC_MSG(clause == CLAUSE_END_BACKUP ? 218 : 215, DYN_MSG_FAC)));
+ }
+}
+
+// Define backup difference file.
+void AlterDatabaseNode::defineDifference(thread_db* tdbb, jrd_tra* transaction, const PathName& file)
+{
+ A...
[truncated message content] |
|
From: <fir...@us...> - 2011-11-23 03:20:49
|
Revision: 53642
http://firebird.svn.sourceforge.net/firebird/?rev=53642&view=rev
Author: firebirds
Date: 2011-11-23 03:20:41 +0000 (Wed, 23 Nov 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-11-22 16:33:25 UTC (rev 53641)
+++ firebird/trunk/ChangeLog 2011-11-23 03:20:41 UTC (rev 53642)
@@ -1,3 +1,40 @@
+ 2011-11-22 16:33 asfernandes
+ M builds/win32/msvc10/engine.vcxproj
+ M builds/win32/msvc10/engine.vcxproj.filters
+ M builds/win32/msvc8/engine.vcproj
+ M builds/win32/msvc9/engine.vcproj
+ M builds/win32/preprocess.bat
+ M lang_helpers/gds_codes.ftn
+ M lang_helpers/gds_codes.pas
+ M src/common/classes/MetaName.h
+ M src/dsql/BlrWriter.cpp
+ M src/dsql/BlrWriter.h
+ M src/dsql/DdlNodes.epp
+ M src/dsql/DdlNodes.h
+ M src/dsql/Nodes.h
+ M src/dsql/Parser.h
+ M src/dsql/ddl.cpp
+ M src/dsql/dsql.h
+ M src/dsql/node.h
+ M src/dsql/parse.y
+ M src/dsql/pass1.cpp
+ M src/include/gen/codetext.h
+ M src/include/gen/iberror.h
+ M src/include/gen/msgs.h
+ M src/include/gen/sql_code.h
+ M src/include/gen/sql_state.h
+ M src/jrd/drq.h
+ M src/jrd/dyn.epp
+ M src/jrd/dyn_def.epp
+ M src/jrd/dyn_df_proto.h
+ D src/jrd/dyn_md_proto.h
+ D src/jrd/dyn_mod.epp
+ M src/jrd/dyn_util.epp
+ M src/msgs/facilities2.sql
+ M src/msgs/messages2.sql
+ M src/msgs/system_errors2.sql
+DDL refactor: ALTER EXTERNAL FUNCTION, ALTER INDEX, SET STATISTICS, CREATE SHADOW, ALTER ROLE, CREATE/ALTER DATABASE.
+
2011-11-18 01:07 asfernandes
M src/burp/backup.epp
M src/burp/canonical.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-11-22 16:33:25 UTC (rev 53641)
+++ firebird/trunk/src/jrd/build_no.h 2011-11-23 03:20:41 UTC (rev 53642)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29618
+ FORMAL BUILD NUMBER:29619
*/
-#define PRODUCT_VER_STRING "3.0.0.29618"
-#define FILE_VER_STRING "WI-T3.0.0.29618"
-#define LICENSE_VER_STRING "WI-T3.0.0.29618"
-#define FILE_VER_NUMBER 3, 0, 0, 29618
+#define PRODUCT_VER_STRING "3.0.0.29619"
+#define FILE_VER_STRING "WI-T3.0.0.29619"
+#define LICENSE_VER_STRING "WI-T3.0.0.29619"
+#define FILE_VER_NUMBER 3, 0, 0, 29619
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29618"
+#define FB_BUILD_NO "29619"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-11-22 16:33:25 UTC (rev 53641)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-11-23 03:20:41 UTC (rev 53642)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29618
+BuildNum=29619
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-11-24 03:20:25
|
Revision: 53644
http://firebird.svn.sourceforge.net/firebird/?rev=53644&view=rev
Author: firebirds
Date: 2011-11-24 03:20:18 +0000 (Thu, 24 Nov 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-11-24 00:17:29 UTC (rev 53643)
+++ firebird/trunk/ChangeLog 2011-11-24 03:20:18 UTC (rev 53644)
@@ -1,3 +1,10 @@
+ 2011-11-24 00:17 asfernandes
+ M src/dsql/DdlNodes.h
+ M src/dsql/ddl.cpp
+ M src/dsql/node.h
+ M src/dsql/pass1.cpp
+Misc.
+
2011-11-22 16:33 asfernandes
M builds/win32/msvc10/engine.vcxproj
M builds/win32/msvc10/engine.vcxproj.filters
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-11-24 00:17:29 UTC (rev 53643)
+++ firebird/trunk/src/jrd/build_no.h 2011-11-24 03:20:18 UTC (rev 53644)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29619
+ FORMAL BUILD NUMBER:29620
*/
-#define PRODUCT_VER_STRING "3.0.0.29619"
-#define FILE_VER_STRING "WI-T3.0.0.29619"
-#define LICENSE_VER_STRING "WI-T3.0.0.29619"
-#define FILE_VER_NUMBER 3, 0, 0, 29619
+#define PRODUCT_VER_STRING "3.0.0.29620"
+#define FILE_VER_STRING "WI-T3.0.0.29620"
+#define LICENSE_VER_STRING "WI-T3.0.0.29620"
+#define FILE_VER_NUMBER 3, 0, 0, 29620
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29619"
+#define FB_BUILD_NO "29620"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-11-24 00:17:29 UTC (rev 53643)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-11-24 03:20:18 UTC (rev 53644)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29619
+BuildNum=29620
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <asf...@us...> - 2011-11-27 19:08:15
|
Revision: 53645
http://firebird.svn.sourceforge.net/firebird/?rev=53645&view=rev
Author: asfernandes
Date: 2011-11-27 19:08:06 +0000 (Sun, 27 Nov 2011)
Log Message:
-----------
Refactored CREATE FILTER and CREATE INDEX.
Modified Paths:
--------------
firebird/trunk/builds/win32/msvc10/engine.vcxproj
firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters
firebird/trunk/builds/win32/msvc8/engine.vcproj
firebird/trunk/builds/win32/msvc9/engine.vcproj
firebird/trunk/builds/win32/preprocess.bat
firebird/trunk/lang_helpers/gds_codes.ftn
firebird/trunk/lang_helpers/gds_codes.pas
firebird/trunk/src/dsql/DdlNodes.epp
firebird/trunk/src/dsql/DdlNodes.h
firebird/trunk/src/dsql/ddl.cpp
firebird/trunk/src/dsql/metd.epp
firebird/trunk/src/dsql/metd_proto.h
firebird/trunk/src/dsql/node.h
firebird/trunk/src/dsql/parse.y
firebird/trunk/src/dsql/pass1.cpp
firebird/trunk/src/include/gen/codetext.h
firebird/trunk/src/include/gen/iberror.h
firebird/trunk/src/include/gen/msgs.h
firebird/trunk/src/include/gen/sql_code.h
firebird/trunk/src/include/gen/sql_state.h
firebird/trunk/src/jrd/dyn.epp
firebird/trunk/src/jrd/dyn.h
firebird/trunk/src/msgs/facilities2.sql
firebird/trunk/src/msgs/messages2.sql
firebird/trunk/src/msgs/system_errors2.sql
Removed Paths:
-------------
firebird/trunk/src/jrd/dyn_def.epp
firebird/trunk/src/jrd/dyn_df_proto.h
Modified: firebird/trunk/builds/win32/msvc10/engine.vcxproj
===================================================================
--- firebird/trunk/builds/win32/msvc10/engine.vcxproj 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/builds/win32/msvc10/engine.vcxproj 2011-11-27 19:08:06 UTC (rev 53645)
@@ -25,7 +25,6 @@
<ClCompile Include="..\..\..\gen\jrd\dfw.cpp" />
<ClCompile Include="..\..\..\gen\jrd\dpm.cpp" />
<ClCompile Include="..\..\..\gen\jrd\dyn.cpp" />
- <ClCompile Include="..\..\..\gen\jrd\dyn_def.cpp" />
<ClCompile Include="..\..\..\gen\jrd\dyn_util.cpp" />
<ClCompile Include="..\..\..\gen\jrd\fun.cpp" />
<ClCompile Include="..\..\..\gen\jrd\Function.cpp" />
@@ -217,7 +216,6 @@
<ClInclude Include="..\..\..\src\jrd\dpm_proto.h" />
<ClInclude Include="..\..\..\src\jrd\drq.h" />
<ClInclude Include="..\..\..\src\jrd\dyn.h" />
- <ClInclude Include="..\..\..\src\jrd\dyn_df_proto.h" />
<ClInclude Include="..\..\..\src\jrd\dyn_proto.h" />
<ClInclude Include="..\..\..\src\jrd\dyn_ut_proto.h" />
<ClInclude Include="..\..\..\src\jrd\ErrorImpl.h" />
@@ -348,7 +346,6 @@
<None Include="..\..\..\src\jrd\dfw.epp" />
<None Include="..\..\..\src\jrd\dpm.epp" />
<None Include="..\..\..\src\jrd\dyn.epp" />
- <None Include="..\..\..\src\jrd\dyn_def.epp" />
<None Include="..\..\..\src\jrd\dyn_util.epp" />
<None Include="..\..\..\src\jrd\fun.epp" />
<None Include="..\..\..\src\jrd\Function.epp" />
Modified: firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters
===================================================================
--- firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/builds/win32/msvc10/engine.vcxproj.filters 2011-11-27 19:08:06 UTC (rev 53645)
@@ -414,9 +414,6 @@
<ClCompile Include="..\..\..\gen\jrd\dyn.cpp">
<Filter>JRD files\GPRE cpp</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\gen\jrd\dyn_def.cpp">
- <Filter>JRD files\GPRE cpp</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\gen\jrd\dyn_util.cpp">
<Filter>JRD files\GPRE cpp</Filter>
</ClCompile>
@@ -677,9 +674,6 @@
<ClInclude Include="..\..\..\src\jrd\dyn.h">
<Filter>Header files</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\src\jrd\dyn_df_proto.h">
- <Filter>Header files</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\src\jrd\dyn_proto.h">
<Filter>Header files</Filter>
</ClInclude>
@@ -1012,9 +1006,6 @@
<None Include="..\..\..\src\jrd\dyn.epp">
<Filter>JRD files\GPRE files</Filter>
</None>
- <None Include="..\..\..\src\jrd\dyn_def.epp">
- <Filter>JRD files\GPRE files</Filter>
- </None>
<None Include="..\..\..\src\jrd\dyn_util.epp">
<Filter>JRD files\GPRE files</Filter>
</None>
Modified: firebird/trunk/builds/win32/msvc8/engine.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc8/engine.vcproj 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/builds/win32/msvc8/engine.vcproj 2011-11-27 19:08:06 UTC (rev 53645)
@@ -727,10 +727,6 @@
>
</File>
<File
- RelativePath="..\..\..\gen\jrd\dyn_def.cpp"
- >
- </File>
- <File
RelativePath="..\..\..\gen\jrd\dyn_del.cpp"
>
</File>
@@ -783,10 +779,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\jrd\dyn_def.epp"
- >
- </File>
- <File
RelativePath="..\..\..\src\jrd\dyn_del.epp"
>
</File>
@@ -1032,10 +1024,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\jrd\dyn_df_proto.h"
- >
- </File>
- <File
RelativePath="..\..\..\src\jrd\dyn_dl_proto.h"
>
</File>
Modified: firebird/trunk/builds/win32/msvc9/engine.vcproj
===================================================================
--- firebird/trunk/builds/win32/msvc9/engine.vcproj 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/builds/win32/msvc9/engine.vcproj 2011-11-27 19:08:06 UTC (rev 53645)
@@ -727,10 +727,6 @@
>
</File>
<File
- RelativePath="..\..\..\gen\jrd\dyn_def.cpp"
- >
- </File>
- <File
RelativePath="..\..\..\gen\jrd\dyn_util.cpp"
>
</File>
@@ -779,10 +775,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\jrd\dyn_def.epp"
- >
- </File>
- <File
RelativePath="..\..\..\src\jrd\dyn_util.epp"
>
</File>
@@ -1024,10 +1016,6 @@
>
</File>
<File
- RelativePath="..\..\..\src\jrd\dyn_df_proto.h"
- >
- </File>
- <File
RelativePath="..\..\..\src\jrd\dyn_proto.h"
>
</File>
Modified: firebird/trunk/builds/win32/preprocess.bat
===================================================================
--- firebird/trunk/builds/win32/preprocess.bat 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/builds/win32/preprocess.bat 2011-11-27 19:08:06 UTC (rev 53645)
@@ -67,7 +67,7 @@
@for %%i in (array, blob) do @call :PREPROCESS yvalve %%i
@for %%i in (metd, DdlNodes, PackageNodes) do @call :PREPROCESS dsql %%i -gds_cxx
@for %%i in (gpre_meta) do @call :PREPROCESS gpre/std %%i
-@for %%i in (dfw, dpm, dyn, dyn_def, dyn_util, fun, grant, ini, met, pcmet, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx
+@for %%i in (dfw, dpm, dyn, dyn_util, fun, grant, ini, met, pcmet, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx
@for %%i in (stats) do @call :PREPROCESS utilities %%i
@goto :EOF
@@ -81,7 +81,7 @@
@for %%i in (metd) do @call :PREPROCESS dsql %%i -gds_cxx
@for %%i in (DdlNodes, PackageNodes) do @call :PREPROCESS dsql %%i -gds_cxx
@for %%i in (gpre_meta) do @call :PREPROCESS gpre/std %%i
-@for %%i in (dfw, dpm, dyn, dyn_def, dyn_util, fun, grant, ini, met, pcmet, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx
+@for %%i in (dfw, dpm, dyn, dyn_util, fun, grant, ini, met, pcmet, scl, Function) do @call :PREPROCESS jrd %%i -gds_cxx
@for %%i in (codes) do @call :PREPROCESS misc %%i
@for %%i in (build_file) do @call :PREPROCESS msgs %%i
@for %%i in (help, meta, proc, show) do @call :PREPROCESS qli %%i
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2011-11-27 19:08:06 UTC (rev 53645)
@@ -2138,6 +2138,10 @@
PARAMETER (GDS__dsql_alter_database_failed = 336397313)
INTEGER*4 GDS__dsql_create_shadow_failed
PARAMETER (GDS__dsql_create_shadow_failed = 336397314)
+ INTEGER*4 GDS__dsql_create_filter_failed
+ PARAMETER (GDS__dsql_create_filter_failed = 336397315)
+ INTEGER*4 GDS__dsql_create_index_failed
+ PARAMETER (GDS__dsql_create_index_failed = 336397316)
INTEGER*4 GDS__gsec_cant_open_db
PARAMETER (GDS__gsec_cant_open_db = 336723983)
INTEGER*4 GDS__gsec_switches_error
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2011-11-27 19:08:06 UTC (rev 53645)
@@ -1076,6 +1076,8 @@
gds_dsql_alter_index_failed = 336397312;
gds_dsql_alter_database_failed = 336397313;
gds_dsql_create_shadow_failed = 336397314;
+ gds_dsql_create_filter_failed = 336397315;
+ gds_dsql_create_index_failed = 336397316;
gds_gsec_cant_open_db = 336723983;
gds_gsec_switches_error = 336723984;
gds_gsec_no_op_spec = 336723985;
Modified: firebird/trunk/src/dsql/DdlNodes.epp
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.epp 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/src/dsql/DdlNodes.epp 2011-11-27 19:08:06 UTC (rev 53645)
@@ -34,6 +34,7 @@
#include "../jrd/jrd.h"
#include "../jrd/msg_encode.h"
#include "../jrd/obj.h"
+#include "../jrd/ods.h"
#include "../jrd/tra.h"
#include "../common/os/path_utils.h"
#include "../jrd/IntlManager.h"
@@ -92,6 +93,8 @@
static void checkViewDependency(thread_db* tdbb, jrd_tra* transaction,
const MetaName& relationName, const MetaName& fieldName);
static void clearPermanentField(dsql_rel* relation, bool permanent);
+static void defineComputed(DsqlCompilerScratch* dsqlScratch, dsql_nod* relation, dsql_fld* field,
+ dsql_nod* node, string& source, BlrWriter::BlrData& value);
static void deleteKeyConstraint(thread_db* tdbb, jrd_tra* transaction,
const MetaName& relationName, const MetaName& constraintName, const MetaName& indexName);
static void defineFile(thread_db* tdbb, jrd_tra* transaction, SLONG shadowNumber, bool manualShadow,
@@ -286,6 +289,94 @@
}
}
+// Define a COMPUTED BY clause, for a field or an index.
+void defineComputed(DsqlCompilerScratch* dsqlScratch, dsql_nod* relation, dsql_fld* field,
+ dsql_nod* node, string& source, BlrWriter::BlrData& value)
+{
+ AutoSetRestore2<dsql_nod*, DsqlCompiledStatement> autoDdlNode(dsqlScratch->getStatement(),
+ &DsqlCompiledStatement::getDdlNode, &DsqlCompiledStatement::setDdlNode, node);
+
+ // Get the table node and set up correct context.
+ DDL_reset_context_stack(dsqlScratch);
+
+ // Save the size of the field if it is specified.
+ dsc saveDesc;
+ saveDesc.dsc_dtype = 0;
+
+ if (field && field->fld_dtype)
+ {
+ fb_assert(field->fld_dtype <= MAX_UCHAR);
+ saveDesc.dsc_dtype = (UCHAR) field->fld_dtype;
+ saveDesc.dsc_length = field->fld_length;
+ fb_assert(field->fld_scale <= MAX_SCHAR);
+ saveDesc.dsc_scale = (SCHAR) field->fld_scale;
+ saveDesc.dsc_sub_type = field->fld_sub_type;
+
+ field->fld_dtype = 0;
+ field->fld_length = 0;
+ field->fld_scale = 0;
+ field->fld_sub_type = 0;
+ }
+
+ PASS1_make_context(dsqlScratch, relation);
+
+ dsql_nod* input = PASS1_node(dsqlScratch, node->nod_arg[Dsql::e_cmp_expr]);
+
+ // Try to calculate size of the computed field. The calculated size
+ // may be ignored, but it will catch self references.
+ dsc desc;
+ MAKE_desc(dsqlScratch, &desc, input);
+
+ // Generate the blr expression.
+
+ dsqlScratch->getBlrData().clear();
+ dsqlScratch->getDebugData().clear();
+ dsqlScratch->appendUChar(dsqlScratch->isVersion4() ? blr_version4 : blr_version5);
+
+ GEN_expr(dsqlScratch, input);
+ dsqlScratch->appendUChar(blr_eoc);
+
+ if (saveDesc.dsc_dtype)
+ {
+ // Restore the field size/type overrides.
+ field->fld_dtype = saveDesc.dsc_dtype;
+ field->fld_length = saveDesc.dsc_length;
+ field->fld_scale = saveDesc.dsc_scale;
+
+ if (field->fld_dtype <= dtype_any_text)
+ {
+ field->fld_character_set_id = DSC_GET_CHARSET(&saveDesc);
+ field->fld_collation_id= DSC_GET_COLLATE(&saveDesc);
+ }
+ else
+ field->fld_sub_type = saveDesc.dsc_sub_type;
+ }
+ else if (field)
+ {
+ // Use size calculated.
+ field->fld_dtype = desc.dsc_dtype;
+ field->fld_length = desc.dsc_length;
+ field->fld_scale = desc.dsc_scale;
+
+ if (field->fld_dtype <= dtype_any_text)
+ {
+ field->fld_character_set_id = DSC_GET_CHARSET(&desc);
+ field->fld_collation_id = DSC_GET_COLLATE(&desc);
+ }
+ else
+ field->fld_sub_type = desc.dsc_sub_type;
+ }
+
+ DDL_reset_context_stack(dsqlScratch);
+
+ // Generate the source text.
+ const dsql_str* sourceStr = (dsql_str*) node->nod_arg[Dsql::e_cmp_text];
+ fb_assert(sourceStr->str_length <= MAX_USHORT);
+ source = string(sourceStr->str_data, sourceStr->str_length);
+
+ value.assign(dsqlScratch->getBlrData());
+}
+
// Delete a record from RDB$RELATION_CONSTRAINTS based on a constraint name.
//
// On deleting from RDB$RELATION_CONSTRAINTS, 2 system triggers fire:
@@ -5357,7 +5448,7 @@
{
field->fld_flags |= FLD_computed;
- defineComputed(tdbb, dsqlScratch, field, element->nod_arg[e_dfl_computed],
+ defineComputed(dsqlScratch, dsqlNode, field, element->nod_arg[e_dfl_computed],
computedSource, computedValue);
}
@@ -5443,94 +5534,6 @@
clearPermanentField(relation, permanent);
}
-// Define a COMPUTED BY clause.
-void RelationNode::defineComputed(thread_db* /*tdbb*/, DsqlCompilerScratch* dsqlScratch,
- dsql_fld* field, dsql_nod* node, string& source, BlrWriter::BlrData& value)
-{
- AutoSetRestore2<dsql_nod*, DsqlCompiledStatement> autoDdlNode(dsqlScratch->getStatement(),
- &DsqlCompiledStatement::getDdlNode, &DsqlCompiledStatement::setDdlNode, node);
-
- // Get the table node and set up correct context.
- DDL_reset_context_stack(dsqlScratch);
-
- // Save the size of the field if it is specified.
- dsc saveDesc;
- saveDesc.dsc_dtype = 0;
-
- if (field && field->fld_dtype)
- {
- fb_assert(field->fld_dtype <= MAX_UCHAR);
- saveDesc.dsc_dtype = (UCHAR) field->fld_dtype;
- saveDesc.dsc_length = field->fld_length;
- fb_assert(field->fld_scale <= MAX_SCHAR);
- saveDesc.dsc_scale = (SCHAR) field->fld_scale;
- saveDesc.dsc_sub_type = field->fld_sub_type;
-
- field->fld_dtype = 0;
- field->fld_length = 0;
- field->fld_scale = 0;
- field->fld_sub_type = 0;
- }
-
- PASS1_make_context(dsqlScratch, dsqlNode);
-
- dsql_nod* input = PASS1_node(dsqlScratch, node->nod_arg[Dsql::e_cmp_expr]);
-
- // Try to calculate size of the computed field. The calculated size
- // may be ignored, but it will catch self references.
- dsc desc;
- MAKE_desc(dsqlScratch, &desc, input);
-
- // Generate the blr expression.
-
- dsqlScratch->getBlrData().clear();
- dsqlScratch->getDebugData().clear();
- dsqlScratch->appendUChar(dsqlScratch->isVersion4() ? blr_version4 : blr_version5);
-
- GEN_expr(dsqlScratch, input);
- dsqlScratch->appendUChar(blr_eoc);
-
- if (saveDesc.dsc_dtype)
- {
- // Restore the field size/type overrides.
- field->fld_dtype = saveDesc.dsc_dtype;
- field->fld_length = saveDesc.dsc_length;
- field->fld_scale = saveDesc.dsc_scale;
-
- if (field->fld_dtype <= dtype_any_text)
- {
- field->fld_character_set_id = DSC_GET_CHARSET(&saveDesc);
- field->fld_collation_id= DSC_GET_COLLATE(&saveDesc);
- }
- else
- field->fld_sub_type = saveDesc.dsc_sub_type;
- }
- else if (field)
- {
- // Use size calculated.
- field->fld_dtype = desc.dsc_dtype;
- field->fld_length = desc.dsc_length;
- field->fld_scale = desc.dsc_scale;
-
- if (field->fld_dtype <= dtype_any_text)
- {
- field->fld_character_set_id = DSC_GET_CHARSET(&desc);
- field->fld_collation_id = DSC_GET_COLLATE(&desc);
- }
- else
- field->fld_sub_type = desc.dsc_sub_type;
- }
-
- DDL_reset_context_stack(dsqlScratch);
-
- // Generate the source text.
- const dsql_str* sourceStr = (dsql_str*) node->nod_arg[Dsql::e_cmp_text];
- fb_assert(sourceStr->str_length <= MAX_USHORT);
- source = string(sourceStr->str_data, sourceStr->str_length);
-
- value.assign(dsqlScratch->getBlrData());
-}
-
// Define a DEFAULT clause. Return true for DEFAULT NULL.
bool RelationNode::defineDefault(thread_db* /*tdbb*/, DsqlCompilerScratch* dsqlScratch,
dsql_fld* /*field*/, dsql_nod* node, string& source, BlrWriter::BlrData& value)
@@ -6985,7 +6988,10 @@
BlrWriter::BlrData computedValue;
if (computedNode)
- defineComputed(tdbb, dsqlScratch, field, computedNode, computedSource, computedValue);
+ {
+ defineComputed(dsqlScratch, dsqlNode, field, computedNode, computedSource,
+ computedValue);
+ }
if (defaultNode)
{
@@ -8631,8 +8637,8 @@
if (keyLength)
{
- keyLength += ((length + STUFF_COUNT - 1) / (unsigned) STUFF_COUNT) *
- (STUFF_COUNT + 1);
+ keyLength += ((length + Ods::STUFF_COUNT - 1) / (unsigned) Ods::STUFF_COUNT) *
+ (Ods::STUFF_COUNT + 1);
}
else
keyLength = length;
@@ -8844,6 +8850,61 @@
}
+void CreateIndexNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
+{
+ text.printf(
+ "CreateIndexNode\n"
+ " name: '%s'\n",
+ name.c_str());
+}
+
+// Define an index.
+void CreateIndexNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
+{
+ Attachment* attachment = transaction->tra_attachment;
+
+ // run all statements under savepoint control
+ AutoSavePoint savePoint(tdbb, transaction);
+
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE, DDL_TRIGGER_CREATE_INDEX, name);
+
+ CreateIndexNode::Definition definition;
+ definition.type = isc_dyn_def_idx;
+ definition.relation = ExprNode::as<RelationSourceNode>(legacyRelation)->dsqlName;
+ definition.unique = unique;
+ definition.descending = descending;
+
+ if (legacyDef->nod_type == Dsql::nod_list)
+ {
+ const dsql_nod* const* ptr = legacyDef->nod_arg;
+ const dsql_nod* const* const end = ptr + legacyDef->nod_count;
+
+ for (; ptr != end; ++ptr)
+ {
+ MetaName& column = definition.columns.add();
+ column = ((dsql_str*) (*ptr)->nod_arg[1])->str_data;
+ }
+ }
+ else if (legacyDef->nod_type == Dsql::nod_def_computed)
+ {
+ string computedSource;
+ BlrWriter::BlrData computedValue;
+
+ defineComputed(dsqlScratch, legacyRelation, NULL, legacyDef, computedSource, computedValue);
+
+ attachment->storeMetaDataBlob(tdbb, transaction, &definition.expressionSource,
+ computedSource);
+ attachment->storeBinaryBlob(tdbb, transaction, &definition.expressionBlr, computedValue);
+ }
+
+ store(tdbb, transaction, name, definition);
+
+ executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_AFTER, DDL_TRIGGER_CREATE_INDEX, name);
+
+ savePoint.release(); // everything is ok
+}
+
+
//----------------------
@@ -9009,6 +9070,69 @@
//----------------------
+void CreateFilterNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
+{
+ text.printf(
+ "CreateFilterNode\n"
+ " name: '%s'\n",
+ name.c_str());
+}
+
+// Define a blob filter.
+void CreateFilterNode::execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction)
+{
+ // run all statements under savepoint control
+ AutoSavePoint savePoint(tdbb, transaction);
+
+ ///executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_BEFORE, DDL_TRIGGER_DECLARE_FILTER, name);
+
+ AutoCacheRequest request(tdbb, drq_s_filters, DYN_REQUESTS);
+
+ STORE(REQUEST_HANDLE request TRANSACTION_HANDLE transaction)
+ X IN RDB$FILTERS
+ {
+ strcpy(X.RDB$FUNCTION_NAME, name.c_str());
+ X.RDB$SYSTEM_FLAG = 0;
+ moduleName.copyTo(X.RDB$MODULE_NAME, sizeof(X.RDB$MODULE_NAME));
+ entryPoint.copyTo(X.RDB$ENTRYPOINT, sizeof(X.RDB$ENTRYPOINT));
+
+ if (inputFilter->name.hasData())
+ {
+ if (!METD_get_type(transaction, inputFilter->name, "RDB$FIELD_SUB_TYPE", &X.RDB$INPUT_SUB_TYPE))
+ {
+ status_exception::raise(
+ Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
+ Arg::Gds(isc_dsql_datatype_err) <<
+ Arg::Gds(isc_dsql_blob_type_unknown) << inputFilter->name);
+ }
+ }
+ else
+ X.RDB$INPUT_SUB_TYPE = inputFilter->number;
+
+ if (outputFilter->name.hasData())
+ {
+ if (!METD_get_type(transaction, outputFilter->name, "RDB$FIELD_SUB_TYPE", &X.RDB$OUTPUT_SUB_TYPE))
+ {
+ status_exception::raise(
+ Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
+ Arg::Gds(isc_dsql_datatype_err) <<
+ Arg::Gds(isc_dsql_blob_type_unknown) << outputFilter->name);
+ }
+ }
+ else
+ X.RDB$OUTPUT_SUB_TYPE = outputFilter->number;
+ }
+ END_STORE
+
+ ///executeDdlTrigger(tdbb, dsqlScratch, transaction, DTW_AFTER, DDL_TRIGGER_DECLARE_FILTER, name);
+
+ savePoint.release(); // everything is ok
+}
+
+
+//----------------------
+
+
void DropFilterNode::print(string& text, Array<dsql_nod*>& /*nodes*/) const
{
text.printf(
Modified: firebird/trunk/src/dsql/DdlNodes.h
===================================================================
--- firebird/trunk/src/dsql/DdlNodes.h 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/src/dsql/DdlNodes.h 2011-11-27 19:08:06 UTC (rev 53645)
@@ -1084,8 +1084,6 @@
void storePrivileges(thread_db* tdbb, jrd_tra* transaction);
void defineField(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction,
const dsql_nod* element, SSHORT position, const dsql_nod* pkcols);
- void defineComputed(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, dsql_fld* field,
- dsql_nod* node, Firebird::string& source, BlrWriter::BlrData& value);
bool defineDefault(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, dsql_fld* field,
dsql_nod* node, Firebird::string& source, BlrWriter::BlrData& value);
void makeConstraint(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction,
@@ -1266,7 +1264,7 @@
};
-class CreateIndexNode
+class CreateIndexNode : public DdlNode
{
public:
struct Definition
@@ -1290,8 +1288,37 @@
Firebird::ObjectsArray<Firebird::MetaName> refColumns;
};
+public:
+ CreateIndexNode(MemoryPool& p, const Firebird::MetaName& aName)
+ : DdlNode(p),
+ name(p, aName),
+ unique(false),
+ descending(false),
+ legacyRelation(NULL),
+ legacyDef(NULL)
+ {
+ }
+
+public:
static void store(thread_db* tdbb, jrd_tra* transaction, Firebird::MetaName& name,
const Definition& definition, Firebird::MetaName* referredIndexName = NULL);
+
+public:
+ virtual void print(Firebird::string& text, Firebird::Array<dsql_nod*>& nodes) const;
+ virtual void execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
+
+protected:
+ virtual void putErrorPrefix(Firebird::Arg::StatusVector& statusVector)
+ {
+ statusVector << Firebird::Arg::Gds(isc_dsql_create_index_failed) << name;
+ }
+
+public:
+ Firebird::MetaName name;
+ bool unique;
+ bool descending;
+ dsql_nod* legacyRelation;
+ dsql_nod* legacyDef;
};
@@ -1373,6 +1400,57 @@
};
+class CreateFilterNode : public DdlNode
+{
+public:
+ struct NameNumber
+ {
+ NameNumber(MemoryPool& p, const Firebird::MetaName& aName)
+ : name(p, aName),
+ number(0)
+ {
+ }
+
+ NameNumber(MemoryPool& p, SSHORT aNumber)
+ : name(p),
+ number(aNumber)
+ {
+ }
+
+ Firebird::MetaName name;
+ SSHORT number;
+ };
+
+public:
+ CreateFilterNode(MemoryPool& p, const Firebird::MetaName& aName)
+ : DdlNode(p),
+ name(p, aName),
+ inputFilter(NULL),
+ outputFilter(NULL),
+ entryPoint(p),
+ moduleName(p)
+ {
+ }
+
+public:
+ virtual void print(Firebird::string& text, Firebird::Array<dsql_nod*>& nodes) const;
+ virtual void execute(thread_db* tdbb, DsqlCompilerScratch* dsqlScratch, jrd_tra* transaction);
+
+protected:
+ virtual void putErrorPrefix(Firebird::Arg::StatusVector& statusVector)
+ {
+ statusVector << Firebird::Arg::Gds(isc_dsql_create_filter_failed) << name;
+ }
+
+public:
+ Firebird::MetaName name;
+ NameNumber* inputFilter;
+ NameNumber* outputFilter;
+ Firebird::string entryPoint;
+ Firebird::string moduleName;
+};
+
+
class DropFilterNode : public DdlNode
{
public:
Modified: firebird/trunk/src/dsql/ddl.cpp
===================================================================
--- firebird/trunk/src/dsql/ddl.cpp 2011-11-24 03:20:18 UTC (rev 53644)
+++ firebird/trunk/src/dsql/ddl.cpp 2011-11-27 19:08:06 UTC (rev 53645)
@@ -115,10 +115,6 @@
static void assign_field_length(dsql_fld*, USHORT);
-static void define_computed(DsqlCompilerScratch*, dsql_nod*, dsql_fld*, dsql_nod*);
-static void define_filter(DsqlCompilerScratch*);
-static SSHORT getBlobFilterSubType(DsqlCompilerScratch* dsqlScratch, const dsql_nod* node);
-static void define_index(DsqlCompilerScratch*);
static void generate_dyn(DsqlCompilerScratch*, dsql_nod*);
static void grant_revoke(DsqlCompilerScratch*);
static void modify_privilege(DsqlCompilerScratch* dsqlScratch, NOD_TYPE type, SSHORT option,
@@ -352,7 +348,7 @@
{
SSHORT blob_sub_type;
if (!METD_get_type(dsqlScratch->getTransaction(),
- reinterpret_cast<const dsql_str*>(field->fld_sub_type_name),
+ reinterpret_cast<const dsql_str*>(field->fld_sub_type_name)->str_data,
"RDB$FIELD_SUB_TYPE", &blob_sub_type))
{
ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
@@ -587,226 +583,6 @@
}
-static void define_computed(DsqlCompilerScratch* dsqlScratch,
- dsql_nod* relation_node,
- dsql_fld* field,
- dsql_nod* node)
-{
-/**************************************
- *
- * d e f i n e _ c o m p u t e d
- *
- **************************************
- *
- * Function
- * Create the ddl to define a computed field
- * or an expression index.
- *
- **************************************/
-
- DsqlCompiledStatement* statement = dsqlScratch->getStatement();
- dsql_nod* const saved_ddl_node = statement->getDdlNode();
- statement->setDdlNode(node);
-
- // Get the table node & set up correct context
- DDL_reset_context_stack(dsqlScratch);
-
- dsc save_desc;
- // Save the size of the field if it is specified
- save_desc.dsc_dtype = 0;
-
- if (field && field->fld_dtype)
- {
- fb_assert(field->fld_dtype <= MAX_UCHAR);
- save_desc.dsc_dtype = (UCHAR) field->fld_dtype;
- save_desc.dsc_length = field->fld_length;
- fb_assert(field->fld_scale <= MAX_SCHAR);
- save_desc.dsc_scale = (SCHAR) field->fld_scale;
- save_desc.dsc_sub_type = field->fld_sub_type;
-
- field->fld_dtype = 0;
- field->fld_length = 0;
- field->fld_scale = 0;
- field->fld_sub_type = 0;
- }
-
- PASS1_make_context(dsqlScratch, relation_node);
-
- dsql_nod* input = PASS1_node(dsqlScratch, node->nod_arg[e_cmp_expr]);
-
- // try to calculate size of the computed field. The calculated size
- // may be ignored, but it will catch self references
- dsc desc;
- MAKE_desc(dsqlScratch, &desc, input);
-
- // generate the blr expression
-
- dsqlScratch->beginBlr(isc_dyn_fld_computed_blr);
- GEN_expr(dsqlScratch, input);
- dsqlScratch->endBlr();
-
- if (save_desc.dsc_dtype)
- {
- // restore the field size/type overrides
- field->fld_dtype = save_desc.dsc_dtype;
- field->fld_length = save_desc.dsc_length;
- field->fld_scale = save_desc.dsc_scale;
- if (field->fld_dtype <= dtype_any_text)
- {
- field->fld_character_set_id = DSC_GET_CHARSET(&save_desc);
- field->fld_collation_id= DSC_GET_COLLATE(&save_desc);
- }
- else
- field->fld_sub_type = save_desc.dsc_sub_type;
- }
- else if (field)
- {
- // use size calculated
- field->fld_dtype = desc.dsc_dtype;
- field->fld_length = desc.dsc_length;
- field->fld_scale = desc.dsc_scale;
- if (field->fld_dtype <= dtype_any_text)
- {
- field->fld_character_set_id = DSC_GET_CHARSET(&desc);
- field->fld_collation_id= DSC_GET_COLLATE(&desc);
- }
- else
- field->fld_sub_type = desc.dsc_sub_type;
- }
-
- statement->setType(DsqlCompiledStatement::TYPE_DDL);
- statement->setDdlNode(saved_ddl_node);
- DDL_reset_context_stack(dsqlScratch);
-
- // generate the source text
- const dsql_str* source = (dsql_str*) node->nod_arg[e_cmp_text];
- fb_assert(source->str_length <= MAX_USHORT);
- dsqlScratch->appendString(isc_dyn_fld_computed_source, source->str_data,
- (USHORT) source->str_length);
-}
-
-
-static SSHORT getBlobFilterSubType(DsqlCompilerScratch* dsqlScratch, const dsql_nod* node)
-{
-/*******************************************
- *
- * g e t B l o b F i l t e r S u b T y p e
- *
- *******************************************
- *
- * Function
- * get sub_type value from LiteralNode.
- *
- **************************************/
- const LiteralNode* literal = ExprNode::as<LiteralNode>(node);
- fb_assert(literal);
-
- switch (literal->litDesc.dsc_dtype)
- {
- case dtype_long:
- return (SSHORT) literal->getSlong();
- case dtype_text:
- break;
- default:
- fb_assert(false);
- return 0;
- }
-
- // fall thru for dtype_text
- const dsql_str* type_name = reinterpret_cast<const dsql_str*>(node->nod_arg[0]);
- SSHORT blob_sub_type;
- if (!METD_get_type(dsqlScratch->getTransaction(), type_name, "RDB$FIELD_SUB_TYPE", &blob_sub_type))
- {
- ERRD_post(Arg::Gds(isc_sqlerr) << Arg::Num(-204) <<
- Arg::Gds(isc_dsql_datatype_err) <<
- Arg::Gds(isc_dsql_blob_type_unknown) << Arg::Str(type_name->str_data));
- }
- return blob_sub_type;
-}
-
-static void define_filter(DsqlCompilerScratch* dsqlScratch)
-{
-/**************************************
- *
- * d e f i n e _ f i l t e r
- *
- **************************************
- *
- * Function
- * define a filter to the database.
- *
- **************************************/
- DsqlCompiledStatement* statement = dsqlScratch->getStatement();
- const dsql_nod* filter_node = statement->getDdlNode();
- const dsql_nod* const* ptr = filter_node->nod_arg;
-
- dsqlScratch->appendNullString(isc_dyn_def_filter, ((dsql_str*) (ptr[e_filter_name]))->str_data);
- dsqlScratch->appendNumber(isc_dyn_filter_in_subtype,
- getBlobFilterSubType(dsqlScratch, ptr[e_filter_in_type]));
- dsqlScratch->appendNumber(isc_dyn_filter_out_subtype,
- getBlobFilterSubType(dsqlScratch, ptr[e_filter_out_type]));
- dsqlScratch->appendNullString(isc_dyn_func_entry_point,
- ((dsql_str*) (ptr[e_filter_entry_pt]))->str_data);
- d...
[truncated message content] |
|
From: <fir...@us...> - 2011-11-28 03:20:17
|
Revision: 53647
http://firebird.svn.sourceforge.net/firebird/?rev=53647&view=rev
Author: firebirds
Date: 2011-11-28 03:20:10 +0000 (Mon, 28 Nov 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-11-28 00:57:11 UTC (rev 53646)
+++ firebird/trunk/ChangeLog 2011-11-28 03:20:10 UTC (rev 53647)
@@ -1,3 +1,39 @@
+ 2011-11-28 00:57 asfernandes
+ M src/dsql/DdlNodes.epp
+ M src/dsql/parse.y
+ M src/jrd/dyn.h
+Misc.
+
+ 2011-11-27 19:08 asfernandes
+ M builds/win32/msvc10/engine.vcxproj
+ M builds/win32/msvc10/engine.vcxproj.filters
+ M builds/win32/msvc8/engine.vcproj
+ M builds/win32/msvc9/engine.vcproj
+ M builds/win32/preprocess.bat
+ M lang_helpers/gds_codes.ftn
+ M lang_helpers/gds_codes.pas
+ M src/dsql/DdlNodes.epp
+ M src/dsql/DdlNodes.h
+ M src/dsql/ddl.cpp
+ M src/dsql/metd.epp
+ M src/dsql/metd_proto.h
+ M src/dsql/node.h
+ M src/dsql/parse.y
+ M src/dsql/pass1.cpp
+ M src/include/gen/codetext.h
+ M src/include/gen/iberror.h
+ M src/include/gen/msgs.h
+ M src/include/gen/sql_code.h
+ M src/include/gen/sql_state.h
+ M src/jrd/dyn.epp
+ M src/jrd/dyn.h
+ D src/jrd/dyn_def.epp
+ D src/jrd/dyn_df_proto.h
+ M src/msgs/facilities2.sql
+ M src/msgs/messages2.sql
+ M src/msgs/system_errors2.sql
+Refactored CREATE FILTER and CREATE INDEX.
+
2011-11-24 00:17 asfernandes
M src/dsql/DdlNodes.h
M src/dsql/ddl.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-11-28 00:57:11 UTC (rev 53646)
+++ firebird/trunk/src/jrd/build_no.h 2011-11-28 03:20:10 UTC (rev 53647)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29620
+ FORMAL BUILD NUMBER:29622
*/
-#define PRODUCT_VER_STRING "3.0.0.29620"
-#define FILE_VER_STRING "WI-T3.0.0.29620"
-#define LICENSE_VER_STRING "WI-T3.0.0.29620"
-#define FILE_VER_NUMBER 3, 0, 0, 29620
+#define PRODUCT_VER_STRING "3.0.0.29622"
+#define FILE_VER_STRING "WI-T3.0.0.29622"
+#define LICENSE_VER_STRING "WI-T3.0.0.29622"
+#define FILE_VER_NUMBER 3, 0, 0, 29622
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29620"
+#define FB_BUILD_NO "29622"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-11-28 00:57:11 UTC (rev 53646)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-11-28 03:20:10 UTC (rev 53647)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29620
+BuildNum=29622
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-11-30 03:23:11
|
Revision: 53650
http://firebird.svn.sourceforge.net/firebird/?rev=53650&view=rev
Author: firebirds
Date: 2011-11-30 03:23:05 +0000 (Wed, 30 Nov 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-11-29 08:37:55 UTC (rev 53649)
+++ firebird/trunk/ChangeLog 2011-11-30 03:23:05 UTC (rev 53650)
@@ -1,3 +1,13 @@
+ 2011-11-29 08:37 dimitr
+ M builds/win32/msvc8/engine.vcproj
+Fixed the build.
+
+ 2011-11-29 08:14 dimitr
+ M src/lock/lock.cpp
+ M src/lock/lock_proto.h
+ M src/lock/print.cpp
+Raised the lock table version. Some cleanup.
+
2011-11-28 00:57 asfernandes
M src/dsql/DdlNodes.epp
M src/dsql/parse.y
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-11-29 08:37:55 UTC (rev 53649)
+++ firebird/trunk/src/jrd/build_no.h 2011-11-30 03:23:05 UTC (rev 53650)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29622
+ FORMAL BUILD NUMBER:29624
*/
-#define PRODUCT_VER_STRING "3.0.0.29622"
-#define FILE_VER_STRING "WI-T3.0.0.29622"
-#define LICENSE_VER_STRING "WI-T3.0.0.29622"
-#define FILE_VER_NUMBER 3, 0, 0, 29622
+#define PRODUCT_VER_STRING "3.0.0.29624"
+#define FILE_VER_STRING "WI-T3.0.0.29624"
+#define LICENSE_VER_STRING "WI-T3.0.0.29624"
+#define FILE_VER_NUMBER 3, 0, 0, 29624
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29622"
+#define FB_BUILD_NO "29624"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-11-29 08:37:55 UTC (rev 53649)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-11-30 03:23:05 UTC (rev 53650)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29622
+BuildNum=29624
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-01 03:19:45
|
Revision: 53652
http://firebird.svn.sourceforge.net/firebird/?rev=53652&view=rev
Author: firebirds
Date: 2011-12-01 03:19:39 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-01 00:47:58 UTC (rev 53651)
+++ firebird/trunk/ChangeLog 2011-12-01 03:19:39 UTC (rev 53652)
@@ -1,3 +1,7 @@
+ 2011-12-01 00:47 asfernandes
+ M src/jrd/recsrc/AggregatedStream.cpp
+Fixed window function with empty streams.
+
2011-11-29 08:37 dimitr
M builds/win32/msvc8/engine.vcproj
Fixed the build.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-01 00:47:58 UTC (rev 53651)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-01 03:19:39 UTC (rev 53652)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29624
+ FORMAL BUILD NUMBER:29625
*/
-#define PRODUCT_VER_STRING "3.0.0.29624"
-#define FILE_VER_STRING "WI-T3.0.0.29624"
-#define LICENSE_VER_STRING "WI-T3.0.0.29624"
-#define FILE_VER_NUMBER 3, 0, 0, 29624
+#define PRODUCT_VER_STRING "3.0.0.29625"
+#define FILE_VER_STRING "WI-T3.0.0.29625"
+#define LICENSE_VER_STRING "WI-T3.0.0.29625"
+#define FILE_VER_NUMBER 3, 0, 0, 29625
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29624"
+#define FB_BUILD_NO "29625"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-01 00:47:58 UTC (rev 53651)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-01 03:19:39 UTC (rev 53652)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29624
+BuildNum=29625
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-02 03:23:54
|
Revision: 53658
http://firebird.svn.sourceforge.net/firebird/?rev=53658&view=rev
Author: firebirds
Date: 2011-12-02 03:23:47 +0000 (Fri, 02 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-01 09:54:36 UTC (rev 53657)
+++ firebird/trunk/ChangeLog 2011-12-02 03:23:47 UTC (rev 53658)
@@ -1,3 +1,15 @@
+ 2011-12-01 09:54 dimitr
+ M src/jrd/exe.cpp
+For a number of reasons, it seems being a good thing to unwind the trigger requests ASAP.
+
+ 2011-12-01 09:37 dimitr
+ M src/jrd/vio.cpp
+Correction.
+
+ 2011-12-01 09:24 dimitr
+ M src/jrd/vio.cpp
+Attempted to fix CORE-3490: Concurrency problem when using named cursors. The solution may look sub-optimal but it doesn't seem to affect the performance.
+
2011-12-01 00:47 asfernandes
M src/jrd/recsrc/AggregatedStream.cpp
Fixed window function with empty streams.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-01 09:54:36 UTC (rev 53657)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-02 03:23:47 UTC (rev 53658)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29625
+ FORMAL BUILD NUMBER:29628
*/
-#define PRODUCT_VER_STRING "3.0.0.29625"
-#define FILE_VER_STRING "WI-T3.0.0.29625"
-#define LICENSE_VER_STRING "WI-T3.0.0.29625"
-#define FILE_VER_NUMBER 3, 0, 0, 29625
+#define PRODUCT_VER_STRING "3.0.0.29628"
+#define FILE_VER_STRING "WI-T3.0.0.29628"
+#define LICENSE_VER_STRING "WI-T3.0.0.29628"
+#define FILE_VER_NUMBER 3, 0, 0, 29628
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29625"
+#define FB_BUILD_NO "29628"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-01 09:54:36 UTC (rev 53657)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-02 03:23:47 UTC (rev 53658)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29625
+BuildNum=29628
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-04 03:20:13
|
Revision: 53662
http://firebird.svn.sourceforge.net/firebird/?rev=53662&view=rev
Author: firebirds
Date: 2011-12-04 03:20:06 +0000 (Sun, 04 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-03 20:22:14 UTC (rev 53661)
+++ firebird/trunk/ChangeLog 2011-12-04 03:20:06 UTC (rev 53662)
@@ -1,3 +1,12 @@
+ 2011-12-03 20:22 asfernandes
+ M src/jrd/recsrc/AggregatedStream.cpp
+ M src/jrd/recsrc/RecursiveStream.cpp
+Fixed CORE-3683 - Recursive query with GROUP BY in root part: wrong results if no index exists for fields that are grouped.
+
+ 2011-12-03 12:48 dimitr
+ M src/burp/restore.epp
+Fixed the authentication during restore via the Services API.
+
2011-12-01 09:54 dimitr
M src/jrd/exe.cpp
For a number of reasons, it seems being a good thing to unwind the trigger requests ASAP.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-03 20:22:14 UTC (rev 53661)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-04 03:20:06 UTC (rev 53662)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29628
+ FORMAL BUILD NUMBER:29630
*/
-#define PRODUCT_VER_STRING "3.0.0.29628"
-#define FILE_VER_STRING "WI-T3.0.0.29628"
-#define LICENSE_VER_STRING "WI-T3.0.0.29628"
-#define FILE_VER_NUMBER 3, 0, 0, 29628
+#define PRODUCT_VER_STRING "3.0.0.29630"
+#define FILE_VER_STRING "WI-T3.0.0.29630"
+#define LICENSE_VER_STRING "WI-T3.0.0.29630"
+#define FILE_VER_NUMBER 3, 0, 0, 29630
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29628"
+#define FB_BUILD_NO "29630"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-03 20:22:14 UTC (rev 53661)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-04 03:20:06 UTC (rev 53662)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29628
+BuildNum=29630
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-05 03:21:00
|
Revision: 53664
http://firebird.svn.sourceforge.net/firebird/?rev=53664&view=rev
Author: firebirds
Date: 2011-12-05 03:20:53 +0000 (Mon, 05 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-04 18:36:26 UTC (rev 53663)
+++ firebird/trunk/ChangeLog 2011-12-05 03:20:53 UTC (rev 53664)
@@ -1,3 +1,15 @@
+ 2011-12-04 18:36 asfernandes
+ M src/dsql/AggNodes.cpp
+ M src/dsql/AggNodes.h
+ M src/dsql/Nodes.h
+ M src/jrd/RecordSourceNodes.cpp
+ M src/jrd/RecordSourceNodes.h
+ M src/jrd/recsrc/AggregatedStream.cpp
+ M src/jrd/recsrc/RecordSource.h
+ M src/jrd/recsrc/WindowedStream.cpp
+Fixed the problem with windowed functions in recursive CTEs, reported by Frank Ingermann in fb-devel.
+This fix is complementary to the one done in CORE-3683.
+
2011-12-03 20:22 asfernandes
M src/jrd/recsrc/AggregatedStream.cpp
M src/jrd/recsrc/RecursiveStream.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-04 18:36:26 UTC (rev 53663)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-05 03:20:53 UTC (rev 53664)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29630
+ FORMAL BUILD NUMBER:29631
*/
-#define PRODUCT_VER_STRING "3.0.0.29630"
-#define FILE_VER_STRING "WI-T3.0.0.29630"
-#define LICENSE_VER_STRING "WI-T3.0.0.29630"
-#define FILE_VER_NUMBER 3, 0, 0, 29630
+#define PRODUCT_VER_STRING "3.0.0.29631"
+#define FILE_VER_STRING "WI-T3.0.0.29631"
+#define LICENSE_VER_STRING "WI-T3.0.0.29631"
+#define FILE_VER_NUMBER 3, 0, 0, 29631
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29630"
+#define FB_BUILD_NO "29631"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-04 18:36:26 UTC (rev 53663)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-05 03:20:53 UTC (rev 53664)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29630
+BuildNum=29631
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-06 03:21:30
|
Revision: 53670
http://firebird.svn.sourceforge.net/firebird/?rev=53670&view=rev
Author: firebirds
Date: 2011-12-06 03:21:23 +0000 (Tue, 06 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-05 20:05:51 UTC (rev 53669)
+++ firebird/trunk/ChangeLog 2011-12-06 03:21:23 UTC (rev 53670)
@@ -1,3 +1,7 @@
+ 2011-12-05 13:06 hvlad
+ M src/dsql/pass1.cpp
+Fixed bug CORE-3690 : Wrong warning message for ambiguous query
+
2011-12-04 18:36 asfernandes
M src/dsql/AggNodes.cpp
M src/dsql/AggNodes.h
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-05 20:05:51 UTC (rev 53669)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-06 03:21:23 UTC (rev 53670)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29631
+ FORMAL BUILD NUMBER:29632
*/
-#define PRODUCT_VER_STRING "3.0.0.29631"
-#define FILE_VER_STRING "WI-T3.0.0.29631"
-#define LICENSE_VER_STRING "WI-T3.0.0.29631"
-#define FILE_VER_NUMBER 3, 0, 0, 29631
+#define PRODUCT_VER_STRING "3.0.0.29632"
+#define FILE_VER_STRING "WI-T3.0.0.29632"
+#define LICENSE_VER_STRING "WI-T3.0.0.29632"
+#define FILE_VER_NUMBER 3, 0, 0, 29632
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29631"
+#define FB_BUILD_NO "29632"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-05 20:05:51 UTC (rev 53669)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-06 03:21:23 UTC (rev 53670)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29631
+BuildNum=29632
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-07 03:21:05
|
Revision: 53682
http://firebird.svn.sourceforge.net/firebird/?rev=53682&view=rev
Author: firebirds
Date: 2011-12-07 03:20:58 +0000 (Wed, 07 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-06 18:09:15 UTC (rev 53681)
+++ firebird/trunk/ChangeLog 2011-12-07 03:20:58 UTC (rev 53682)
@@ -1,3 +1,31 @@
+ 2011-12-06 18:09 dimitr
+ M src/dsql/ExprNodes.cpp
+Correction related to CORE-927.
+
+ 2011-12-06 15:08 hvlad
+ M src/dsql/parse.y
+Cleanup
+
+ 2011-12-06 14:38 asfernandes
+ M doc/sql.extensions/README.builtin_functions.txt
+Fixed CORE-3382 - Incomplete description of POSITION() function.
+
+ 2011-12-06 14:24 asfernandes
+ M src/dsql/ExprNodes.cpp
+Fixed CORE-3545 - Inconsistent domain's constraint validation in PSQL.
+
+ 2011-12-06 13:12 dimitr
+ M src/jrd/trig.h
+Fixed CORE-3692: Cannot drop a NOT NULL constraint on a field participating in the UNIQUE constraint.
+
+ 2011-12-06 13:09 dimitr
+ M src/dsql/ExprNodes.cpp
+Fixed CORE-927: Grants don't work for procedures used inside views.
+
+ 2011-12-06 10:02 dimitr
+ M src/jrd/cmp.cpp
+Fixed CORE-927: Grants don't work for procedures used inside views.
+
2011-12-05 13:06 hvlad
M src/dsql/pass1.cpp
Fixed bug CORE-3690 : Wrong warning message for ambiguous query
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-06 18:09:15 UTC (rev 53681)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-07 03:20:58 UTC (rev 53682)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29632
+ FORMAL BUILD NUMBER:29639
*/
-#define PRODUCT_VER_STRING "3.0.0.29632"
-#define FILE_VER_STRING "WI-T3.0.0.29632"
-#define LICENSE_VER_STRING "WI-T3.0.0.29632"
-#define FILE_VER_NUMBER 3, 0, 0, 29632
+#define PRODUCT_VER_STRING "3.0.0.29639"
+#define FILE_VER_STRING "WI-T3.0.0.29639"
+#define LICENSE_VER_STRING "WI-T3.0.0.29639"
+#define FILE_VER_NUMBER 3, 0, 0, 29639
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29632"
+#define FB_BUILD_NO "29639"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-06 18:09:15 UTC (rev 53681)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-07 03:20:58 UTC (rev 53682)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29632
+BuildNum=29639
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-09 03:23:06
|
Revision: 53685
http://firebird.svn.sourceforge.net/firebird/?rev=53685&view=rev
Author: firebirds
Date: 2011-12-09 03:22:59 +0000 (Fri, 09 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-08 15:13:28 UTC (rev 53684)
+++ firebird/trunk/ChangeLog 2011-12-09 03:22:59 UTC (rev 53685)
@@ -1,3 +1,7 @@
+ 2011-12-08 15:13 asfernandes
+ M src/jrd/RecordSourceNodes.cpp
+Fixed CORE-3694 - internal Firebird consistency check in query with grouping by subquery+stored procedure+aggregate.
+
2011-12-06 18:09 dimitr
M src/dsql/ExprNodes.cpp
Correction related to CORE-927.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-08 15:13:28 UTC (rev 53684)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-09 03:22:59 UTC (rev 53685)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29639
+ FORMAL BUILD NUMBER:29640
*/
-#define PRODUCT_VER_STRING "3.0.0.29639"
-#define FILE_VER_STRING "WI-T3.0.0.29639"
-#define LICENSE_VER_STRING "WI-T3.0.0.29639"
-#define FILE_VER_NUMBER 3, 0, 0, 29639
+#define PRODUCT_VER_STRING "3.0.0.29640"
+#define FILE_VER_STRING "WI-T3.0.0.29640"
+#define LICENSE_VER_STRING "WI-T3.0.0.29640"
+#define FILE_VER_NUMBER 3, 0, 0, 29640
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29639"
+#define FB_BUILD_NO "29640"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-08 15:13:28 UTC (rev 53684)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-09 03:22:59 UTC (rev 53685)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29639
+BuildNum=29640
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-10 03:22:23
|
Revision: 53687
http://firebird.svn.sourceforge.net/firebird/?rev=53687&view=rev
Author: firebirds
Date: 2011-12-10 03:22:16 +0000 (Sat, 10 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-10 01:18:58 UTC (rev 53686)
+++ firebird/trunk/ChangeLog 2011-12-10 03:22:16 UTC (rev 53687)
@@ -1,3 +1,8 @@
+ 2011-12-10 01:18 asfernandes
+ M src/dsql/ExprNodes.cpp
+ M src/jrd/cmp.cpp
+Misc.
+
2011-12-08 15:13 asfernandes
M src/jrd/RecordSourceNodes.cpp
Fixed CORE-3694 - internal Firebird consistency check in query with grouping by subquery+stored procedure+aggregate.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-10 01:18:58 UTC (rev 53686)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-10 03:22:16 UTC (rev 53687)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29640
+ FORMAL BUILD NUMBER:29641
*/
-#define PRODUCT_VER_STRING "3.0.0.29640"
-#define FILE_VER_STRING "WI-T3.0.0.29640"
-#define LICENSE_VER_STRING "WI-T3.0.0.29640"
-#define FILE_VER_NUMBER 3, 0, 0, 29640
+#define PRODUCT_VER_STRING "3.0.0.29641"
+#define FILE_VER_STRING "WI-T3.0.0.29641"
+#define LICENSE_VER_STRING "WI-T3.0.0.29641"
+#define FILE_VER_NUMBER 3, 0, 0, 29641
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29640"
+#define FB_BUILD_NO "29641"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-10 01:18:58 UTC (rev 53686)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-10 03:22:16 UTC (rev 53687)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29640
+BuildNum=29641
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-15 03:21:17
|
Revision: 53697
http://firebird.svn.sourceforge.net/firebird/?rev=53697&view=rev
Author: firebirds
Date: 2011-12-15 03:21:11 +0000 (Thu, 15 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-14 16:08:05 UTC (rev 53696)
+++ firebird/trunk/ChangeLog 2011-12-15 03:21:11 UTC (rev 53697)
@@ -1,3 +1,28 @@
+ 2011-12-14 14:51 paulbeach
+ M builds/install/arch-specific/darwin/preupgrade-script
+CORE-3862 - Multiple update installs can cause problems.
+
+ 2011-12-14 06:45 dimitr
+ M src/jrd/recsrc/AggregatedStream.cpp
+ M src/jrd/recsrc/BufferedStream.cpp
+ M src/jrd/recsrc/ConditionalStream.cpp
+ M src/jrd/recsrc/FilteredStream.cpp
+ M src/jrd/recsrc/FirstRowsStream.cpp
+ M src/jrd/recsrc/FullOuterJoin.cpp
+ M src/jrd/recsrc/HashJoin.cpp
+ M src/jrd/recsrc/LockedStream.cpp
+ M src/jrd/recsrc/MergeJoin.cpp
+ M src/jrd/recsrc/NestedLoopJoin.cpp
+ M src/jrd/recsrc/RecordSource.cpp
+ M src/jrd/recsrc/RecordSource.h
+ M src/jrd/recsrc/RecursiveStream.cpp
+ M src/jrd/recsrc/SingularStream.cpp
+ M src/jrd/recsrc/SkipRowsStream.cpp
+ M src/jrd/recsrc/SortedStream.cpp
+ M src/jrd/recsrc/Union.cpp
+ M src/jrd/recsrc/WindowedStream.cpp
+Reworked the fix for CORE-3683: Recursive query with GROUP BY in root part: wrong results if no index exists for fields that are grouped. It resolves some optimization regressions appeared after the original fix.
+
2011-12-10 01:18 asfernandes
M src/dsql/ExprNodes.cpp
M src/jrd/cmp.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-14 16:08:05 UTC (rev 53696)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-15 03:21:11 UTC (rev 53697)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29641
+ FORMAL BUILD NUMBER:29643
*/
-#define PRODUCT_VER_STRING "3.0.0.29641"
-#define FILE_VER_STRING "WI-T3.0.0.29641"
-#define LICENSE_VER_STRING "WI-T3.0.0.29641"
-#define FILE_VER_NUMBER 3, 0, 0, 29641
+#define PRODUCT_VER_STRING "3.0.0.29643"
+#define FILE_VER_STRING "WI-T3.0.0.29643"
+#define LICENSE_VER_STRING "WI-T3.0.0.29643"
+#define FILE_VER_NUMBER 3, 0, 0, 29643
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29641"
+#define FB_BUILD_NO "29643"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-14 16:08:05 UTC (rev 53696)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-15 03:21:11 UTC (rev 53697)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29641
+BuildNum=29643
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-17 03:21:40
|
Revision: 53704
http://firebird.svn.sourceforge.net/firebird/?rev=53704&view=rev
Author: firebirds
Date: 2011-12-17 03:21:33 +0000 (Sat, 17 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-17 01:34:39 UTC (rev 53703)
+++ firebird/trunk/ChangeLog 2011-12-17 03:21:33 UTC (rev 53704)
@@ -1,3 +1,12 @@
+ 2011-12-17 01:34 asfernandes
+ M src/jrd/recsrc/RecursiveStream.cpp
+ M src/jrd/trace/TraceObjects.cpp
+Misc.
+
+ 2011-12-16 14:48 hvlad
+ M src/jrd/trace/TraceObjects.cpp
+Second try to work with null's correctly
+
2011-12-14 14:51 paulbeach
M builds/install/arch-specific/darwin/preupgrade-script
CORE-3862 - Multiple update installs can cause problems.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-17 01:34:39 UTC (rev 53703)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-17 03:21:33 UTC (rev 53704)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29643
+ FORMAL BUILD NUMBER:29645
*/
-#define PRODUCT_VER_STRING "3.0.0.29643"
-#define FILE_VER_STRING "WI-T3.0.0.29643"
-#define LICENSE_VER_STRING "WI-T3.0.0.29643"
-#define FILE_VER_NUMBER 3, 0, 0, 29643
+#define PRODUCT_VER_STRING "3.0.0.29645"
+#define FILE_VER_STRING "WI-T3.0.0.29645"
+#define LICENSE_VER_STRING "WI-T3.0.0.29645"
+#define FILE_VER_NUMBER 3, 0, 0, 29645
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29643"
+#define FB_BUILD_NO "29645"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-17 01:34:39 UTC (rev 53703)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-17 03:21:33 UTC (rev 53704)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29643
+BuildNum=29645
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-20 03:21:50
|
Revision: 53711
http://firebird.svn.sourceforge.net/firebird/?rev=53711&view=rev
Author: firebirds
Date: 2011-12-20 03:21:44 +0000 (Tue, 20 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-19 16:01:11 UTC (rev 53710)
+++ firebird/trunk/ChangeLog 2011-12-20 03:21:44 UTC (rev 53711)
@@ -1,3 +1,8 @@
+ 2011-12-19 10:01 hvlad
+ M src/dsql/dsql.cpp
+Fixed AV in trace when statement free event is traced and it is first traced event for a given statement (i.e. prepare\execution was not traced before).
+Adriano, please review.
+
2011-12-17 01:34 asfernandes
M src/jrd/recsrc/RecursiveStream.cpp
M src/jrd/trace/TraceObjects.cpp
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-19 16:01:11 UTC (rev 53710)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-20 03:21:44 UTC (rev 53711)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29645
+ FORMAL BUILD NUMBER:29646
*/
-#define PRODUCT_VER_STRING "3.0.0.29645"
-#define FILE_VER_STRING "WI-T3.0.0.29645"
-#define LICENSE_VER_STRING "WI-T3.0.0.29645"
-#define FILE_VER_NUMBER 3, 0, 0, 29645
+#define PRODUCT_VER_STRING "3.0.0.29646"
+#define FILE_VER_STRING "WI-T3.0.0.29646"
+#define LICENSE_VER_STRING "WI-T3.0.0.29646"
+#define FILE_VER_NUMBER 3, 0, 0, 29646
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29645"
+#define FB_BUILD_NO "29646"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-19 16:01:11 UTC (rev 53710)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-20 03:21:44 UTC (rev 53711)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29645
+BuildNum=29646
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <asf...@us...> - 2011-12-20 14:30:48
|
Revision: 53717
http://firebird.svn.sourceforge.net/firebird/?rev=53717&view=rev
Author: asfernandes
Date: 2011-12-20 14:30:41 +0000 (Tue, 20 Dec 2011)
Log Message:
-----------
Fixed CORE-3238 - Makes GEN_UUID return a compliant RFC-4122 binary UUID and introduce CHAR_TO_UUID2 and UUID_TO_CHAR2 to convert UUIDs from/to string also complying with the RFC.
Modified Paths:
--------------
firebird/trunk/doc/sql.extensions/README.builtin_functions.txt
firebird/trunk/src/common/os/guid.h
firebird/trunk/src/common/os/posix/guid.cpp
firebird/trunk/src/common/os/win32/guid.cpp
firebird/trunk/src/common/sha.cpp
firebird/trunk/src/dsql/parse.y
firebird/trunk/src/jrd/RandomGenerator.cpp
firebird/trunk/src/jrd/SysFunction.cpp
firebird/trunk/src/jrd/nbak.cpp
firebird/trunk/src/jrd/trace/TraceService.cpp
firebird/trunk/src/utilities/gstat/ppg.cpp
firebird/trunk/src/utilities/nbackup/nbackup.cpp
firebird/trunk/src/yvalve/keywords.cpp
Modified: firebird/trunk/doc/sql.extensions/README.builtin_functions.txt
===================================================================
--- firebird/trunk/doc/sql.extensions/README.builtin_functions.txt 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/doc/sql.extensions/README.builtin_functions.txt 2011-12-20 14:30:41 UTC (rev 53717)
@@ -246,12 +246,38 @@
Format:
CHAR_TO_UUID( <string> )
+Notes:
+ If you have not used this function before, its usage is discouraged. CHAR_TO_UUID2 superseds it.
+
Example:
select char_to_uuid('93519227-8D50-4E47-81AA-8F6678C096A1') from rdb$database;
-See also: GEN_UUID and UUID_TO_CHAR
+See also: GEN_UUID, CHAR_TO_UUID2, UUID_TO_CHAR and UUID_TO_CHAR2
+-------------
+CHAR_TO_UUID2
+-------------
+
+Function:
+ Converts the CHAR(32) ASCII representation of an UUID
+ (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX) to the CHAR(16) OCTETS
+ representation (optimized for storage).
+
+Format:
+ CHAR_TO_UUID2( <string> )
+
+Notes:
+ This function superseds CHAR_TO_UUID. The difference between them is that CHAR_TO_UUID does a
+ byte-by-byte conversion of the ASCII string to the OCTETS one, while CHAR_TO_UUID2 converts
+ a RFC-4122 compliant ASCII UUID to a compliant OCTETS string.
+
+Example:
+ select char_to_uuid2('93519227-8D50-4E47-81AA-8F6678C096A1') from rdb$database;
+
+See also: GEN_UUID, UUID_TO_CHAR2
+
+
---
COS
---
@@ -405,10 +431,17 @@
Format:
GEN_UUID()
+Notes:
+ In Firebird 2.5.0 and 2.5.1, GEN_UUID was returning completely random strings. This is not
+ compliant with the RFC-4122 (UUID specification).
+ In Firebird 2.5.2 and 3.0 this was fixed. Now GEN_UUID returns a compliant UUID version 4
+ string, where some bits are reserved and the others are random. The string format of a compliant
+ UUID is XXXXXXXX-XXXX-4XXX-YXXX-XXXXXXXXXXXX, where 4 is fixed (version) and Y is 8, 9, A or B.
+
Example:
insert into records (id) value (gen_uuid());
-See also: CHAR_TO_UUID and UUID_TO_CHAR
+See also: CHAR_TO_UUID, UUID_TO_CHAR, CHAR_TO_UUID2, UUID_TO_CHAR2
----
@@ -840,7 +873,32 @@
Format:
UUID_TO_CHAR( <string> )
+Notes:
+ If you have not used this function before, its usage is discouraged. UUID_TO_CHAR2 superseds it.
+
Example:
select uuid_to_char(gen_uuid()) from rdb$database;
-See also: GEN_UUID and CHAR_TO_UUID
+See also: GEN_UUID, UUID_TO_CHAR2, CHAR_TO_UUID and CHAR_TO_UUID2
+
+
+-------------
+UUID_TO_CHAR2
+-------------
+
+Function:
+ Converts a CHAR(16) OCTETS UUID (that's returned by GEN_UUID) to the
+ CHAR(32) ASCII representation (XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX).
+
+Format:
+ UUID_TO_CHAR2( <string> )
+
+Notes:
+ This function superseds UUID_TO_CHAR. The difference between them is that UUID_TO_CHAR does a
+ byte-by-byte conversion of the OCTETS string to the ASCII one, while UUID_TO_CHAR2 converts
+ a RFC-4122 compliant OCTETS UUID to a compliant ASCII string.
+
+Example:
+ select uuid_to_char2(gen_uuid()) from rdb$database;
+
+See also: GEN_UUID, CHAR_TO_UUID2
Modified: firebird/trunk/src/common/os/guid.h
===================================================================
--- firebird/trunk/src/common/os/guid.h 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/common/os/guid.h 2011-12-20 14:30:41 UTC (rev 53717)
@@ -22,18 +22,19 @@
*
* All Rights Reserved.
* Contributor(s): ______________________________________.
+ * Adriano dos Santos Fernandes
*
- *
- *
*/
-#ifndef GUID_H
-#define GUID_H
+#ifndef FB_GUID_H
+#define FB_GUID_H
#include <stdlib.h>
#include <stdio.h>
#include "fb_types.h"
+namespace Firebird {
+
const int GUID_BUFF_SIZE = 39;
const int GUID_BODY_SIZE = 36;
@@ -42,41 +43,73 @@
const char* const GUID_NEW_FORMAT =
"{%02hX%02hX%02hX%02hX-%02hX%02hX-%02hX%02hX-%02hX%02hX-%02hX%02hX%02hX%02hX%02hX%02hX}";
-struct FB_GUID
+struct Guid
{
- USHORT data[8];
+ enum Style
+ {
+ STYLE_NBACKUP, // Format introduced with nbackup
+ STYLE_BROKEN, // Format introduced in FB 2.5.0
+ STYLE_UUID // Format as defined in the RFC-4122.
+ };
+
+ union
+ {
+ USHORT data[8];
+
+ struct // Compatible with Win32 GUID struct layout.
+ {
+ ULONG data1;
+ USHORT data2;
+ USHORT data3;
+ UCHAR data4[8];
+ };
+ };
};
void GenerateRandomBytes(void* buffer, size_t size);
-void GenerateGuid(FB_GUID* guid);
+void GenerateGuid(Guid* guid);
// These functions receive buffers of at least GUID_BUFF_SIZE length
-inline void GuidToString(char* buffer, const FB_GUID* guid, bool legacy)
+inline void GuidToString(char* buffer, const Guid* guid, Guid::Style style)
{
- if (legacy) // nbackup guid
+ switch (style)
{
- sprintf(buffer, GUID_LEGACY_FORMAT,
- guid->data[0], guid->data[1], guid->data[2], guid->data[3],
- guid->data[4], guid->data[5], guid->data[6], guid->data[7]);
+ case Guid::STYLE_NBACKUP:
+ sprintf(buffer, GUID_LEGACY_FORMAT,
+ guid->data[0], guid->data[1], guid->data[2], guid->data[3],
+ guid->data[4], guid->data[5], guid->data[6], guid->data[7]);
+ break;
+
+ case Guid::STYLE_BROKEN:
+ sprintf(buffer, GUID_NEW_FORMAT,
+ USHORT(guid->data[0] & 0xFF), USHORT(guid->data[0] >> 8),
+ USHORT(guid->data[1] & 0xFF), USHORT(guid->data[1] >> 8),
+ USHORT(guid->data[2] & 0xFF), USHORT(guid->data[2] >> 8),
+ USHORT(guid->data[3] & 0xFF), USHORT(guid->data[3] >> 8),
+ USHORT(guid->data[4] & 0xFF), USHORT(guid->data[4] >> 8),
+ USHORT(guid->data[5] & 0xFF), USHORT(guid->data[5] >> 8),
+ USHORT(guid->data[6] & 0xFF), USHORT(guid->data[6] >> 8),
+ USHORT(guid->data[7] & 0xFF), USHORT(guid->data[7] >> 8));
+ break;
+
+ case Guid::STYLE_UUID:
+ sprintf(buffer, GUID_NEW_FORMAT,
+ USHORT((guid->data1 >> 24) & 0xFF), USHORT((guid->data1 >> 16) & 0xFF),
+ USHORT((guid->data1 >> 8) & 0xFF), USHORT(guid->data1 & 0xFF),
+ USHORT((guid->data2 >> 8) & 0xFF), USHORT(guid->data2 & 0xFF),
+ USHORT((guid->data3 >> 8) & 0xFF), USHORT(guid->data3 & 0xFF),
+ USHORT(guid->data4[0]), USHORT(guid->data4[1]),
+ USHORT(guid->data4[2]), USHORT(guid->data4[3]),
+ USHORT(guid->data4[4]), USHORT(guid->data4[5]),
+ USHORT(guid->data4[6]), USHORT(guid->data4[7]));
+ break;
}
- else
- {
- sprintf(buffer, GUID_NEW_FORMAT,
- USHORT(guid->data[0] & 0xFF), USHORT(guid->data[0] >> 8),
- USHORT(guid->data[1] & 0xFF), USHORT(guid->data[1] >> 8),
- USHORT(guid->data[2] & 0xFF), USHORT(guid->data[2] >> 8),
- USHORT(guid->data[3] & 0xFF), USHORT(guid->data[3] >> 8),
- USHORT(guid->data[4] & 0xFF), USHORT(guid->data[4] >> 8),
- USHORT(guid->data[5] & 0xFF), USHORT(guid->data[5] >> 8),
- USHORT(guid->data[6] & 0xFF), USHORT(guid->data[6] >> 8),
- USHORT(guid->data[7] & 0xFF), USHORT(guid->data[7] >> 8));
- }
}
-inline void StringToGuid(FB_GUID* guid, const char* buffer, bool legacy)
+inline void StringToGuid(Guid* guid, const char* buffer, Guid::Style style)
{
- if (legacy) // nbackup guid
+ if (style == Guid::STYLE_NBACKUP)
{
sscanf(buffer, GUID_LEGACY_FORMAT,
&guid->data[0], &guid->data[1], &guid->data[2], &guid->data[3],
@@ -91,15 +124,34 @@
&bytes[8], &bytes[9], &bytes[10], &bytes[11],
&bytes[12], &bytes[13], &bytes[14], &bytes[15]);
- guid->data[0] = bytes[0] | (bytes[1] << 8);
- guid->data[1] = bytes[2] | (bytes[3] << 8);
- guid->data[2] = bytes[4] | (bytes[5] << 8);
- guid->data[3] = bytes[6] | (bytes[7] << 8);
- guid->data[4] = bytes[8] | (bytes[9] << 8);
- guid->data[5] = bytes[10] | (bytes[11] << 8);
- guid->data[6] = bytes[12] | (bytes[13] << 8);
- guid->data[7] = bytes[14] | (bytes[15] << 8);
+ if (style == Guid::STYLE_BROKEN)
+ {
+ guid->data[0] = bytes[0] | (bytes[1] << 8);
+ guid->data[1] = bytes[2] | (bytes[3] << 8);
+ guid->data[2] = bytes[4] | (bytes[5] << 8);
+ guid->data[3] = bytes[6] | (bytes[7] << 8);
+ guid->data[4] = bytes[8] | (bytes[9] << 8);
+ guid->data[5] = bytes[10] | (bytes[11] << 8);
+ guid->data[6] = bytes[12] | (bytes[13] << 8);
+ guid->data[7] = bytes[14] | (bytes[15] << 8);
+ }
+ else if (style == Guid::STYLE_UUID)
+ {
+ guid->data1 = (bytes[0] << 24) | (bytes[1] << 16) | (bytes[2] << 8) | bytes[3];
+ guid->data2 = (bytes[4] << 8) | bytes[5];
+ guid->data3 = (bytes[6] << 8) | bytes[7];
+ guid->data4[0] = bytes[8];
+ guid->data4[1] = bytes[9];
+ guid->data4[2] = bytes[10];
+ guid->data4[3] = bytes[11];
+ guid->data4[4] = bytes[12];
+ guid->data4[5] = bytes[13];
+ guid->data4[6] = bytes[14];
+ guid->data4[7] = bytes[15];
+ }
}
}
-#endif
+} // namespace
+
+#endif // FB_GUID_H
Modified: firebird/trunk/src/common/os/posix/guid.cpp
===================================================================
--- firebird/trunk/src/common/os/posix/guid.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/common/os/posix/guid.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -37,6 +37,9 @@
#include <stdio.h>
#include <errno.h>
+namespace Firebird {
+
+
void GenerateRandomBytes(void* buffer, size_t size)
{
// do not use /dev/random because it may return lesser data than we need.
@@ -71,7 +74,12 @@
}
}
-void GenerateGuid(FB_GUID* guid)
+void GenerateGuid(Guid* guid)
{
- GenerateRandomBytes(guid, sizeof(FB_GUID));
+ GenerateRandomBytes(guid, sizeof(Guid));
+ guid->data3 = (4 << 12) | (guid->data3 & 0xFFF); // version 4
+ guid->data4[0] = 0x80 | (guid->data4[0] & 0x3F); // variant
}
+
+
+} // namespace
Modified: firebird/trunk/src/common/os/win32/guid.cpp
===================================================================
--- firebird/trunk/src/common/os/win32/guid.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/common/os/win32/guid.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -38,7 +38,9 @@
#include "../common/os/guid.h"
#include "fb_exception.h"
+namespace Firebird {
+
void GenerateRandomBytes(void* buffer, size_t size)
{
HCRYPTPROV hProv;
@@ -70,9 +72,12 @@
CryptReleaseContext(hProv, 0);
}
-void GenerateGuid(FB_GUID* guid)
+void GenerateGuid(Guid* guid)
{
const HRESULT error = CoCreateGuid((GUID*) guid);
if (!SUCCEEDED(error))
Firebird::system_call_failed::raise("CoCreateGuid", error);
}
+
+
+} // namespace
Modified: firebird/trunk/src/common/sha.cpp
===================================================================
--- firebird/trunk/src/common/sha.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/common/sha.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -398,7 +398,7 @@
void Jrd::CryptSupport::random(Firebird::string& randomValue, size_t length)
{
BinHash binRand;
- GenerateRandomBytes(binRand.getBuffer(length), length);
+ Firebird::GenerateRandomBytes(binRand.getBuffer(length), length);
base64(randomValue, binRand);
randomValue.resize(length, '$');
}
Modified: firebird/trunk/src/dsql/parse.y
===================================================================
--- firebird/trunk/src/dsql/parse.y 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/dsql/parse.y 2011-12-20 14:30:41 UTC (rev 53717)
@@ -535,6 +535,7 @@
%token <legacyNode> AUTONOMOUS
%token <legacyNode> CHAR_TO_UUID
+%token <legacyNode> CHAR_TO_UUID2
%token <legacyNode> FIRSTNAME
%token <legacyNode> GRANTED
%token <legacyNode> LASTNAME
@@ -543,6 +544,7 @@
%token <legacyNode> OS_NAME
%token <legacyNode> SIMILAR
%token <legacyNode> UUID_TO_CHAR
+%token <legacyNode> UUID_TO_CHAR2
// new execute statement
%token <legacyNode> CALLER
%token <legacyNode> COMMON
@@ -5931,6 +5933,7 @@
| BIN_XOR
| CEIL
| CHAR_TO_UUID
+ | CHAR_TO_UUID2
| COS
| COSH
| COT
@@ -5964,6 +5967,7 @@
| TANH
| TRUNC
| UUID_TO_CHAR
+ | UUID_TO_CHAR2
;
system_function_special_syntax
@@ -6499,12 +6503,14 @@
| WEEK
| AUTONOMOUS // added in FB 2.5
| CHAR_TO_UUID
+ | CHAR_TO_UUID2
| FIRSTNAME
| MIDDLENAME
| LASTNAME
| MAPPING
| OS_NAME
| UUID_TO_CHAR
+ | UUID_TO_CHAR2
| GRANTED
| CALLER // new execute statement
| COMMON
Modified: firebird/trunk/src/jrd/RandomGenerator.cpp
===================================================================
--- firebird/trunk/src/jrd/RandomGenerator.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/jrd/RandomGenerator.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -25,15 +25,15 @@
#include "../jrd/RandomGenerator.h"
#include "../common/os/guid.h"
+using namespace Firebird;
+using namespace Jrd;
-namespace Jrd {
RandomGenerator::RandomGenerator()
: bufferPos(BUFFER_SIZE)
{
}
-
void RandomGenerator::getBytes(void* p, size_t size)
{
while (size > 0)
@@ -54,6 +54,3 @@
size -= size2;
}
}
-
-} // namespace
-
Modified: firebird/trunk/src/jrd/SysFunction.cpp
===================================================================
--- firebird/trunk/src/jrd/SysFunction.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/jrd/SysFunction.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -1511,8 +1511,8 @@
buffer[38] = '\0';
memcpy(buffer + 1, data, GUID_BODY_SIZE);
- FB_GUID guid;
- StringToGuid(&guid, buffer, false);
+ Guid guid;
+ StringToGuid(&guid, buffer, (Guid::Style)(IPTR) function->misc);
dsc result;
result.makeText(16, ttype_binary, reinterpret_cast<UCHAR*>(guid.data));
@@ -2043,7 +2043,7 @@
{
fb_assert(args.getCount() == 0);
- FB_GUID guid;
+ Guid guid;
fb_assert(sizeof(guid.data) == 16);
GenerateGuid(&guid);
@@ -3611,16 +3611,16 @@
UCHAR* data;
const USHORT len = MOV_get_string(value, &data, NULL, 0);
- if (len != sizeof(FB_GUID))
+ if (len != sizeof(Guid))
{
status_exception::raise(Arg::Gds(isc_expression_eval_err) <<
Arg::Gds(isc_sysf_binuuid_wrongsize) <<
- Arg::Num(sizeof(FB_GUID)) <<
+ Arg::Num(sizeof(Guid)) <<
Arg::Str(function->name));
}
char buffer[GUID_BUFF_SIZE];
- GuidToString(buffer, reinterpret_cast<const FB_GUID*>(data), false);
+ GuidToString(buffer, reinterpret_cast<const Guid*>(data), (Guid::Style)(IPTR) function->misc);
dsc result;
result.makeText(GUID_BODY_SIZE, ttype_ascii, reinterpret_cast<UCHAR*>(buffer) + 1);
@@ -3655,7 +3655,8 @@
{"BIN_XOR", 2, -1, setParamsInteger, makeBin, evlBin, (void*) funBinXor},
{"CEIL", 1, 1, setParamsDouble, makeCeilFloor, evlCeil, NULL},
{"CEILING", 1, 1, setParamsDouble, makeCeilFloor, evlCeil, NULL},
- {"CHAR_TO_UUID", 1, 1, setParamsCharToUuid, makeUuid, evlCharToUuid, NULL},
+ {"CHAR_TO_UUID", 1, 1, setParamsCharToUuid, makeUuid, evlCharToUuid, (void*)(IPTR) Guid::STYLE_BROKEN},
+ {"CHAR_TO_UUID2", 1, 1, setParamsCharToUuid, makeUuid, evlCharToUuid, (void*)(IPTR) Guid::STYLE_UUID},
{"COS", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfCos},
{"COSH", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfCosh},
{"COT", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfCot},
@@ -3692,7 +3693,8 @@
{"TAN", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfTan},
{"TANH", 1, 1, setParamsDouble, makeDoubleResult, evlStdMath, (void*) trfTanh},
{"TRUNC", 1, 2, setParamsRoundTrunc, makeTrunc, evlTrunc, NULL},
- {"UUID_TO_CHAR", 1, 1, setParamsUuidToChar, makeUuidToChar, evlUuidToChar, NULL},
+ {"UUID_TO_CHAR", 1, 1, setParamsUuidToChar, makeUuidToChar, evlUuidToChar, (void*)(IPTR) Guid::STYLE_BROKEN},
+ {"UUID_TO_CHAR2", 1, 1, setParamsUuidToChar, makeUuidToChar, evlUuidToChar, (void*)(IPTR) Guid::STYLE_UUID},
{"", 0, 0, NULL, NULL, NULL, NULL}
};
Modified: firebird/trunk/src/jrd/nbak.cpp
===================================================================
--- firebird/trunk/src/jrd/nbak.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/jrd/nbak.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -298,7 +298,7 @@
if (!PIO_write(diff_file, &temp_bdb, temp_bdb.bdb_buffer, tdbb->tdbb_status_vector))
ERR_punt();
NBAK_TRACE(("Set backup state in header"));
- FB_GUID guid;
+ Guid guid;
GenerateGuid(&guid);
// Set state in database header page. All changes are written to main database file yet.
CCH_MARK_MUST_WRITE(tdbb, &window);
Modified: firebird/trunk/src/jrd/trace/TraceService.cpp
===================================================================
--- firebird/trunk/src/jrd/trace/TraceService.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/jrd/trace/TraceService.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -103,11 +103,11 @@
if (interactive)
{
- FB_GUID guid;
+ Guid guid;
GenerateGuid(&guid);
char* buff = session.ses_logfile.getBuffer(GUID_BUFF_SIZE);
- GuidToString(buff, &guid, false);
+ GuidToString(buff, &guid, Guid::STYLE_BROKEN);
session.ses_logfile.insert(0, "fb_trace.");
}
Modified: firebird/trunk/src/utilities/gstat/ppg.cpp
===================================================================
--- firebird/trunk/src/utilities/gstat/ppg.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/utilities/gstat/ppg.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -40,6 +40,7 @@
// gstat directly reads database files, therefore
using namespace Ods;
+using Firebird::Guid;
void PPG_print_header(const header_page* header, ULONG page,
bool nocreation, Firebird::UtilSvc* uSvc)
@@ -255,8 +256,8 @@
case HDR_backup_guid:
{
- char buff[GUID_BUFF_SIZE];
- GuidToString(buff, reinterpret_cast<const FB_GUID*>(p + 2), true);
+ char buff[Firebird::GUID_BUFF_SIZE];
+ Firebird::GuidToString(buff, reinterpret_cast<const Guid*>(p + 2), Guid::STYLE_NBACKUP);
uSvc->printf(false, "\tDatabase backup GUID:\t%s\n", buff);
break;
}
Modified: firebird/trunk/src/utilities/nbackup/nbackup.cpp
===================================================================
--- firebird/trunk/src/utilities/nbackup/nbackup.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/utilities/nbackup/nbackup.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -253,8 +253,8 @@
SSHORT version; // Incremental backup format version.
SSHORT level; // Backup level.
// \\\\\ ---- this is 8 bytes. should not cause alignment problems
- FB_GUID backup_guid; // GUID of this backup
- FB_GUID prev_guid; // GUID of previous level backup
+ Guid backup_guid; // GUID of this backup
+ Guid prev_guid; // GUID of previous level backup
ULONG page_size; // Size of pages in the database and backup file
// These fields are currently filled, but not used. May be used in future versions
ULONG backup_scn; // SCN of this backup
@@ -925,7 +925,7 @@
--db_size;
page_reads++;
- FB_GUID backup_guid;
+ Guid backup_guid;
bool guid_found = false;
const UCHAR* p = reinterpret_cast<Ods::header_page*>(page_buff)->hdr_data;
while (true)
@@ -933,9 +933,9 @@
switch (*p)
{
case Ods::HDR_backup_guid:
- if (p[1] != sizeof(FB_GUID))
+ if (p[1] != sizeof(Guid))
break;
- memcpy(&backup_guid, p + 2, sizeof(FB_GUID));
+ memcpy(&backup_guid, p + 2, sizeof(Guid));
guid_found = true;
break;
case Ods::HDR_difference_file:
@@ -957,7 +957,7 @@
bh.version = 1;
bh.level = level;
bh.backup_guid = backup_guid;
- StringToGuid(&bh.prev_guid, prev_guid, true);
+ StringToGuid(&bh.prev_guid, prev_guid, Guid::STYLE_NBACKUP);
bh.page_size = header->hdr_page_size;
bh.backup_scn = backup_scn;
bh.prev_scn = prev_scn;
@@ -1115,7 +1115,7 @@
in_sqlda->sqlvar[0].sqldata = (char*) &level;
in_sqlda->sqlvar[0].sqlind = &null_flag;
char temp[GUID_BUFF_SIZE];
- GuidToString(temp, &backup_guid, true);
+ GuidToString(temp, &backup_guid, Guid::STYLE_NBACKUP);
in_sqlda->sqlvar[1].sqldata = temp;
in_sqlda->sqlvar[1].sqlind = &null_flag;
in_sqlda->sqlvar[2].sqldata = (char*) &backup_scn;
@@ -1184,7 +1184,7 @@
UCHAR *page_buffer = NULL;
try {
int curLevel = 0;
- FB_GUID prev_guid;
+ Guid prev_guid;
while (true)
{
if (!filecount)
@@ -1266,7 +1266,7 @@
Arg::Num(bakheader.level) << bakname.c_str() << Arg::Num(curLevel));
}
// We may also add SCN check, but GUID check covers this case too
- if (memcmp(&bakheader.prev_guid, &prev_guid, sizeof(FB_GUID)) != 0)
+ if (memcmp(&bakheader.prev_guid, &prev_guid, sizeof(Guid)) != 0)
status_exception::raise(Arg::Gds(isc_nbackup_wrong_orderbk) << bakname.c_str());
delete_database = true;
@@ -1330,9 +1330,9 @@
switch (*p)
{
case Ods::HDR_backup_guid:
- if (p[1] != sizeof(FB_GUID))
+ if (p[1] != sizeof(Guid))
break;
- memcpy(&prev_guid, p + 2, sizeof(FB_GUID));
+ memcpy(&prev_guid, p + 2, sizeof(Guid));
guid_found = true;
break;
case Ods::HDR_difference_file:
Modified: firebird/trunk/src/yvalve/keywords.cpp
===================================================================
--- firebird/trunk/src/yvalve/keywords.cpp 2011-12-20 13:03:12 UTC (rev 53716)
+++ firebird/trunk/src/yvalve/keywords.cpp 2011-12-20 14:30:41 UTC (rev 53717)
@@ -111,6 +111,7 @@
{KW_CHAR, "CHAR", 1, false},
{CHAR_LENGTH, "CHAR_LENGTH", 2, false},
{CHAR_TO_UUID, "CHAR_TO_UUID", 2, false},
+ {CHAR_TO_UUID2, "CHAR_TO_UUID2", 2, false},
{CHARACTER, "CHARACTER", 1, false},
{CHARACTER_LENGTH, "CHARACTER_LENGTH", 2, false},
{CHECK, "CHECK", 1, false},
@@ -413,6 +414,7 @@
{USER, "USER", 1, false},
{USING, "USING", 2, false},
{UUID_TO_CHAR, "UUID_TO_CHAR", 2, false},
+ {UUID_TO_CHAR2, "UUID_TO_CHAR2", 2, false},
{KW_VALUE, "VALUE", 1, false},
{VALUES, "VALUES", 1, false},
{VARCHAR, "VARCHAR", 1, false},
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-21 03:22:06
|
Revision: 53719
http://firebird.svn.sourceforge.net/firebird/?rev=53719&view=rev
Author: firebirds
Date: 2011-12-21 03:21:59 +0000 (Wed, 21 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-21 00:51:28 UTC (rev 53718)
+++ firebird/trunk/ChangeLog 2011-12-21 03:21:59 UTC (rev 53719)
@@ -1,3 +1,23 @@
+ 2011-12-21 00:51 asfernandes
+ M src/dsql/dsql.cpp
+Misc.
+
+ 2011-12-20 14:30 asfernandes
+ M doc/sql.extensions/README.builtin_functions.txt
+ M src/common/os/guid.h
+ M src/common/os/posix/guid.cpp
+ M src/common/os/win32/guid.cpp
+ M src/common/sha.cpp
+ M src/dsql/parse.y
+ M src/jrd/RandomGenerator.cpp
+ M src/jrd/SysFunction.cpp
+ M src/jrd/nbak.cpp
+ M src/jrd/trace/TraceService.cpp
+ M src/utilities/gstat/ppg.cpp
+ M src/utilities/nbackup/nbackup.cpp
+ M src/yvalve/keywords.cpp
+Fixed CORE-3238 - Makes GEN_UUID return a compliant RFC-4122 binary UUID and introduce CHAR_TO_UUID2 and UUID_TO_CHAR2 to convert UUIDs from/to string also complying with the RFC.
+
2011-12-19 10:01 hvlad
M src/dsql/dsql.cpp
Fixed AV in trace when statement free event is traced and it is first traced event for a given statement (i.e. prepare\execution was not traced before).
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-21 00:51:28 UTC (rev 53718)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-21 03:21:59 UTC (rev 53719)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29646
+ FORMAL BUILD NUMBER:29648
*/
-#define PRODUCT_VER_STRING "3.0.0.29646"
-#define FILE_VER_STRING "WI-T3.0.0.29646"
-#define LICENSE_VER_STRING "WI-T3.0.0.29646"
-#define FILE_VER_NUMBER 3, 0, 0, 29646
+#define PRODUCT_VER_STRING "3.0.0.29648"
+#define FILE_VER_STRING "WI-T3.0.0.29648"
+#define LICENSE_VER_STRING "WI-T3.0.0.29648"
+#define FILE_VER_NUMBER 3, 0, 0, 29648
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29646"
+#define FB_BUILD_NO "29648"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-21 00:51:28 UTC (rev 53718)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-21 03:21:59 UTC (rev 53719)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29646
+BuildNum=29648
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <fir...@us...> - 2011-12-23 03:21:44
|
Revision: 53738
http://firebird.svn.sourceforge.net/firebird/?rev=53738&view=rev
Author: firebirds
Date: 2011-12-23 03:21:38 +0000 (Fri, 23 Dec 2011)
Log Message:
-----------
nightly update
Modified Paths:
--------------
firebird/trunk/ChangeLog
firebird/trunk/src/jrd/build_no.h
firebird/trunk/src/misc/writeBuildNum.sh
Modified: firebird/trunk/ChangeLog
===================================================================
--- firebird/trunk/ChangeLog 2011-12-22 15:32:06 UTC (rev 53737)
+++ firebird/trunk/ChangeLog 2011-12-23 03:21:38 UTC (rev 53738)
@@ -1,3 +1,28 @@
+ 2011-12-22 15:32 dimitr
+ M src/include/consts_pub.h
+ M src/jrd/jrd.cpp
+ M src/jrd/jrd_proto.h
+ M src/jrd/svc.cpp
+ M src/remote/server/os/win32/property.cpp
+ M src/remote/server/os/win32/window.cpp
+ M src/remote/server/serve_proto.h
+ M src/remote/server/server.cpp
+Re-implemented the disabled code in the remote server. Cleaned up the legacy logic that doesn't look actual these days.
+Some code refactoring.
+
+ 2011-12-22 14:18 asfernandes
+ M src/dsql/WinNodes.cpp
+Misc.
+
+ 2011-12-22 08:07 dimitr
+ M src/dsql/BoolNodes.cpp
+ M src/dsql/ExprNodes.h
+ M src/dsql/StmtNodes.cpp
+ M src/dsql/parse.y
+ M src/gpre/cme.cpp
+ M src/jrd/constants.h
+Let's avoid duplication of shared constants.
+
2011-12-21 00:51 asfernandes
M src/dsql/dsql.cpp
Misc.
Modified: firebird/trunk/src/jrd/build_no.h
===================================================================
--- firebird/trunk/src/jrd/build_no.h 2011-12-22 15:32:06 UTC (rev 53737)
+++ firebird/trunk/src/jrd/build_no.h 2011-12-23 03:21:38 UTC (rev 53738)
@@ -3,16 +3,16 @@
*** DO NOT EDIT ***
TO CHANGE ANY INFORMATION IN HERE PLEASE
EDIT src/misc/writeBuildNum.sh
- FORMAL BUILD NUMBER:29648
+ FORMAL BUILD NUMBER:29651
*/
-#define PRODUCT_VER_STRING "3.0.0.29648"
-#define FILE_VER_STRING "WI-T3.0.0.29648"
-#define LICENSE_VER_STRING "WI-T3.0.0.29648"
-#define FILE_VER_NUMBER 3, 0, 0, 29648
+#define PRODUCT_VER_STRING "3.0.0.29651"
+#define FILE_VER_STRING "WI-T3.0.0.29651"
+#define LICENSE_VER_STRING "WI-T3.0.0.29651"
+#define FILE_VER_NUMBER 3, 0, 0, 29651
#define FB_MAJOR_VER "3"
#define FB_MINOR_VER "0"
#define FB_REV_NO "0"
-#define FB_BUILD_NO "29648"
+#define FB_BUILD_NO "29651"
#define FB_BUILD_TYPE "T"
#define FB_BUILD_SUFFIX "Firebird 3.0 Unstable"
Modified: firebird/trunk/src/misc/writeBuildNum.sh
===================================================================
--- firebird/trunk/src/misc/writeBuildNum.sh 2011-12-22 15:32:06 UTC (rev 53737)
+++ firebird/trunk/src/misc/writeBuildNum.sh 2011-12-23 03:21:38 UTC (rev 53738)
@@ -9,7 +9,7 @@
MajorVer=3
MinorVer=0
RevNo=0
-BuildNum=29648
+BuildNum=29651
NowAt=`pwd`
cd `dirname $0`
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ale...@us...> - 2011-12-23 12:44:08
|
Revision: 53739
http://firebird.svn.sourceforge.net/firebird/?rev=53739&view=rev
Author: alexpeshkoff
Date: 2011-12-23 12:43:58 +0000 (Fri, 23 Dec 2011)
Log Message:
-----------
Fixed CORE-1898: Increase the password length from 8 characters, CORE-3372: Simplify process of non-default security database creation
Modified Paths:
--------------
firebird/trunk/builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
firebird/trunk/builds/install/arch-specific/linux/misc/postinstall.sh.in
firebird/trunk/builds/install/misc/posixLibrary.sh.in
firebird/trunk/builds/posix/Makefile.in
firebird/trunk/builds/posix/make.defaults
firebird/trunk/builds/posix/make.shared.variables
firebird/trunk/configure.in
firebird/trunk/lang_helpers/gds_codes.ftn
firebird/trunk/lang_helpers/gds_codes.pas
firebird/trunk/src/auth/AuthDbg.cpp
firebird/trunk/src/auth/AuthDbg.h
firebird/trunk/src/auth/SecurityDatabase/LegacyClient.cpp
firebird/trunk/src/auth/SecurityDatabase/LegacyClient.h
firebird/trunk/src/auth/SecurityDatabase/LegacyHash.h
firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.epp
firebird/trunk/src/auth/SecurityDatabase/LegacyManagement.h
firebird/trunk/src/auth/SecurityDatabase/LegacyServer.cpp
firebird/trunk/src/auth/SecurityDatabase/LegacyServer.h
firebird/trunk/src/auth/trusted/AuthSspi.cpp
firebird/trunk/src/auth/trusted/AuthSspi.h
firebird/trunk/src/common/Auth.cpp
firebird/trunk/src/common/Auth.h
firebird/trunk/src/common/classes/ClumpletReader.cpp
firebird/trunk/src/common/classes/ClumpletReader.h
firebird/trunk/src/common/classes/ClumpletWriter.cpp
firebird/trunk/src/common/classes/ClumpletWriter.h
firebird/trunk/src/common/classes/GetPlugins.h
firebird/trunk/src/common/classes/array.h
firebird/trunk/src/common/common.h
firebird/trunk/src/common/config/config.cpp
firebird/trunk/src/common/security.h
firebird/trunk/src/common/sha.cpp
firebird/trunk/src/common/sha.h
firebird/trunk/src/common/thd.cpp
firebird/trunk/src/common/utils.cpp
firebird/trunk/src/common/utils_proto.h
firebird/trunk/src/include/consts_pub.h
firebird/trunk/src/include/firebird/Plugin.h
firebird/trunk/src/include/firebird/Provider.h
firebird/trunk/src/include/gen/codetext.h
firebird/trunk/src/include/gen/iberror.h
firebird/trunk/src/include/gen/msgs.h
firebird/trunk/src/include/gen/sql_code.h
firebird/trunk/src/include/gen/sql_state.h
firebird/trunk/src/jrd/SysFunction.cpp
firebird/trunk/src/jrd/UserManagement.h
firebird/trunk/src/jrd/jrd.cpp
firebird/trunk/src/jrd/svc.cpp
firebird/trunk/src/jrd/tra.cpp
firebird/trunk/src/jrd/trace/TraceCmdLine.cpp
firebird/trunk/src/jrd/trace/TraceManager.h
firebird/trunk/src/msgs/facilities2.sql
firebird/trunk/src/msgs/messages2.sql
firebird/trunk/src/msgs/system_errors2.sql
firebird/trunk/src/remote/client/interface.cpp
firebird/trunk/src/remote/inet.cpp
firebird/trunk/src/remote/inet_proto.h
firebird/trunk/src/remote/os/win32/wnet.cpp
firebird/trunk/src/remote/protocol.cpp
firebird/trunk/src/remote/protocol.h
firebird/trunk/src/remote/remot_proto.h
firebird/trunk/src/remote/remote.cpp
firebird/trunk/src/remote/remote.h
firebird/trunk/src/remote/server/os/posix/inet_server.cpp
firebird/trunk/src/remote/server/server.cpp
firebird/trunk/src/utilities/gsec/gsec.cpp
firebird/trunk/src/utilities/gsec/gsec_proto.h
firebird/trunk/src/utilities/gstat/dba.epp
firebird/trunk/src/yvalve/DistributedTransaction.cpp
firebird/trunk/src/yvalve/PluginManager.cpp
firebird/trunk/src/yvalve/PluginManager.h
firebird/trunk/src/yvalve/why.cpp
Added Paths:
-----------
firebird/trunk/src/auth/SecureRemotePassword/
firebird/trunk/src/auth/SecureRemotePassword/BigInteger.cpp
firebird/trunk/src/auth/SecureRemotePassword/BigInteger.h
firebird/trunk/src/auth/SecureRemotePassword/Message.h
firebird/trunk/src/auth/SecureRemotePassword/client/
firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.cpp
firebird/trunk/src/auth/SecureRemotePassword/client/SrpClient.h
firebird/trunk/src/auth/SecureRemotePassword/manage/
firebird/trunk/src/auth/SecureRemotePassword/manage/SrpManagement.cpp
firebird/trunk/src/auth/SecureRemotePassword/misc/
firebird/trunk/src/auth/SecureRemotePassword/misc/prime.cpp
firebird/trunk/src/auth/SecureRemotePassword/misc/test.sh
firebird/trunk/src/auth/SecureRemotePassword/misc/test_srp.cpp
firebird/trunk/src/auth/SecureRemotePassword/server/
firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.cpp
firebird/trunk/src/auth/SecureRemotePassword/server/SrpServer.h
firebird/trunk/src/auth/SecureRemotePassword/srp.cpp
firebird/trunk/src/auth/SecureRemotePassword/srp.h
firebird/trunk/src/include/firebird/Auth.h
firebird/trunk/src/plugins/crypt/
firebird/trunk/src/plugins/crypt/arc4/
Removed Paths:
-------------
firebird/trunk/src/auth/AuthInterface.h
Modified: firebird/trunk/builds/install/arch-specific/linux/misc/linuxLibrary.sh.in
===================================================================
--- firebird/trunk/builds/install/arch-specific/linux/misc/linuxLibrary.sh.in 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/builds/install/arch-specific/linux/misc/linuxLibrary.sh.in 2011-12-23 12:43:58 UTC (rev 53739)
@@ -178,35 +178,40 @@
}
#------------------------------------------------------------------------
-# Generate new sysdba password - this routine is used only in the
-# rpm file not in the install script.
+# Create new password string - this routine is used only in
+# silent mode of the install script.
-generateNewDBAPassword() {
+createNewPassword() {
# openssl generates random data.
openssl </dev/null >/dev/null 2&>/dev/null
if [ $? -eq 0 ]
then
- # We generate 20 random chars, strip any '/''s and get the first 8
- NewPasswd=`openssl rand -base64 20 | tr -d '/' | cut -c1-8`
+ # We generate 40 random chars, strip any '/''s and get the first 20
+ NewPasswd=`openssl rand -base64 40 | tr -d '/' | cut -c1-20`
fi
- # mkpasswd is a bit of a hassle, but check to see if it's there
- if [ -z "$NewPasswd" ]
- then
- if [ -f /usr/bin/mkpasswd ]
- then
- NewPasswd=`/usr/bin/mkpasswd -l 8`
- fi
- fi
+ # If openssl is missing...
+ if [ -z "$NewPasswd" ]
+ then
+ NewPasswd=`dd if=/dev/urandom bs=10 count=1 2>/dev/null | od -x | head -n 1 | tr -d ' ' | cut -c8-27`
+ fi
- # On some systems the mkpasswd program doesn't appear and on others
- # there is another mkpasswd which does a different operation. So if
+ # On some systems even this routines may be missing. So if
# the specific one isn't available then keep the original password.
if [ -z "$NewPasswd" ]
then
NewPasswd="masterkey"
fi
+ echo "$NewPasswd"
+}
+
+#------------------------------------------------------------------------
+# Generate new sysdba password - this routine is used only in
+# silent mode of the install script.
+
+generateNewDBAPassword() {
+ NewPasswd=`createNewPassword`
writeNewPassword $NewPasswd
}
Modified: firebird/trunk/builds/install/arch-specific/linux/misc/postinstall.sh.in
===================================================================
--- firebird/trunk/builds/install/arch-specific/linux/misc/postinstall.sh.in 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/builds/install/arch-specific/linux/misc/postinstall.sh.in 2011-12-23 12:43:58 UTC (rev 53739)
@@ -40,16 +40,6 @@
addFirebirdUser
fi
-# Create the fbmgr shell script.
-if [ -x @FB_SBINDIR@/fbmgr.bin ]; then
- cat > @FB_SBINDIR@/fbmgr <<EOF
-#!/bin/sh
-FIREBIRD=@FB_CONFDIR@
-export FIREBIRD
-exec @FB_SBINDIR@/fbmgr.bin \$@
-EOF
-fi
-
# Update ownership and SUID bits for files.
fixFilePermissions
@@ -65,11 +55,11 @@
# Update the /etc/inetd.conf or xinetd entry
updateInetdServiceEntry
+# Change sysdba password (use embedded access)
+setDBAPassword
+
# Get inetd to reread new init files.
resetInetdServer
-# start the db server so we can change the password
+# start the RDBMS server
startService @FIREBIRD_ARCH_TYPE@
-
-# Change sysdba password
-changeDBAPassword
Modified: firebird/trunk/builds/install/misc/posixLibrary.sh.in
===================================================================
--- firebird/trunk/builds/install/misc/posixLibrary.sh.in 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/builds/install/misc/posixLibrary.sh.in 2011-12-23 12:43:58 UTC (rev 53739)
@@ -297,6 +297,17 @@
#------------------------------------------------------------------------
+# Ask user to enter new DBA password string
+# !! This routine is interactive !!
+
+getNewDBAPasswordFromUser()
+{
+ AskQuestion "Please enter new password for SYSDBA user: "
+ echo $Answer
+}
+
+
+#------------------------------------------------------------------------
# Modify DBA password to value, asked from user.
# $1 may be set to original DBA password
# !! This routine is interactive !!
@@ -313,8 +324,7 @@
NewPasswd=""
while [ -z "$NewPasswd" ]
do
- AskQuestion "Please enter new password for SYSDBA user: "
- NewPasswd=$Answer
+ NewPasswd=`getNewDBAPasswordFromUser`
if [ ! -z "$NewPasswd" ]
then
if ! runSilent "@FB_BINDIR@/gsec -user sysdba -password $OrigPasswd -modify sysdba -pw $NewPasswd"
@@ -438,6 +448,26 @@
#------------------------------------------------------------------------
+# Set sysdba password.
+
+setDBAPassword() {
+ if [ -z "$InteractiveInstall" ]
+ then
+ passwd=`createNewPassword`
+ else
+ passwd=`getNewDBAPasswordFromUser`
+ fi
+
+ if [ ! -z "$passwd" ]
+ then
+ passwd=masterkey
+ fi
+
+ runSilent "@FB_BINDIR@/gsec -add sysdba -pw $passwd"
+}
+
+
+#------------------------------------------------------------------------
# buildUninstallFile
# This will work only for the .tar.gz install and it builds an
# uninstall shell script. The RPM system, if present, takes care of it's own.
Modified: firebird/trunk/builds/posix/Makefile.in
===================================================================
--- firebird/trunk/builds/posix/Makefile.in 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/builds/posix/Makefile.in 2011-12-23 12:43:58 UTC (rev 53739)
@@ -359,10 +359,11 @@
# plugins - some of them are required to build examples, use separate entry for them
#
-.PHONY: udr legacy_user_management trace auth_debug
+.PHONY: udr legacy_user_management trace auth_debug
makePluginName= $(PLUGINS)/$(LIB_PREFIX)$(1).$(SHRLIB_EXT)
UDR_PLUGIN = $(call makePluginName,udr_engine)
LEGACY_USER_MANAGER = $(call makePluginName,Legacy_UserManager)
+SRP_USER_MANAGER = $(call makePluginName,Srp)
AUTH_DEBUGGER = $(call makePluginName,Auth_Debug)
BUILD_DEBUG:=
@@ -370,7 +371,7 @@
BUILD_DEBUG:=auth_debug
endif
-plugins: udr legacy_user_management trace $(BUILD_DEBUG)
+plugins: udr legacy_user_management srp_user_management trace $(BUILD_DEBUG)
udr: $(UDR_PLUGIN) $(PLUGINS)/udr_engine.conf
@@ -395,7 +396,11 @@
$(AUTH_DEBUGGER): $(AUTH_DEBUGGER_Objects) $(COMMON_LIB)
$(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK)
+srp_user_management: $(SRP_USER_MANAGER)
+$(SRP_USER_MANAGER): $(SRP_USERS_MANAGE_Objects) $(COMMON_LIB)
+ $(LINK_PLUGIN) $(call LIB_LINK_SONAME,$(notdir $@).0) -o $@ $^ $(LINK_PLUG_LIBS) $(FIREBIRD_LIBRARY_LINK) $(MATHLIB)
+
#___________________________________________________________________________
# codes - developers change them sometimes
#
Modified: firebird/trunk/builds/posix/make.defaults
===================================================================
--- firebird/trunk/builds/posix/make.defaults 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/builds/posix/make.defaults 2011-12-23 12:43:58 UTC (rev 53739)
@@ -128,6 +128,9 @@
# needed at least for solaris inline assembly routines
CAS_OPTIONS=@CAS_OPTIONS@
+# multiple-precision integer library
+MATHLIB=@MATHLIB@
+
# Default programs and tools to be used in the build process
SH= sh -c
@@ -307,7 +310,7 @@
LINK_FIREBIRD = $(LIB_LINK) $(LINK_FIREBIRD_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\
$(call LIB_LINK_SONAME,$(LibrarySoName)) $(call LIB_LINK_RPATH,lib)
-LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS)
+LINK_FIREBIRD_LIBS = -L$(LIB) $(LIB_GUI) $(SO_LINK_LIBS) $(MATHLIB)
LINK_ENGINE = $(LIB_LINK) $(LINK_PLUGIN_SYMBOLS) $(LIB_LINK_OPTIONS) $(LIB_FIREBIRD_OPTIONS) $(UNDEF_FLAGS)\
$(call LIB_LINK_SONAME,$(EngineSoName)) $(call LIB_LINK_RPATH,lib)
Modified: firebird/trunk/builds/posix/make.shared.variables
===================================================================
--- firebird/trunk/builds/posix/make.shared.variables 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/builds/posix/make.shared.variables 2011-12-23 12:43:58 UTC (rev 53739)
@@ -49,10 +49,12 @@
# Remote
-Remote_Common:= $(call dirObjects,remote)
-Remote_Server:= $(call dirObjects,remote/server) $(call makeObjects,auth/SecurityDatabase,LegacyServer.cpp)
- # legacy security database LegacyServer.cpp should become SA plugin
-Remote_Client:= $(call dirObjects,remote/client) $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp)
+Remote_Common:= $(call dirObjects,remote) $(call dirObjects,auth/SecureRemotePassword)
+Remote_Server:= $(call dirObjects,remote/server) $(call dirObjects,auth/SecureRemotePassword/server) \
+ $(call makeObjects,auth/SecurityDatabase,LegacyServer.cpp)
+ # legacy security database LegacyServer.cpp should become plugin soon
+Remote_Client:= $(call dirObjects,remote/client) $(call dirObjects,auth/SecureRemotePassword/client) \
+ $(call makeObjects,auth/SecurityDatabase,LegacyClient.cpp)
Remote_Server_Objects:= $(Remote_Common) $(Remote_Server)
Remote_Client_Objects:= $(Remote_Common) $(Remote_Client)
@@ -165,6 +167,13 @@
AllObjects += $(LEGACY_USERS_MANAGE_Objects)
+# SRP-based users management in security database
+SRP_USERS_MANAGE_Objects:= $(call dirObjects,auth/SecureRemotePassword/manage) \
+ $(call dirObjects,auth/SecureRemotePassword)
+
+AllObjects += $(SRP_USERS_MANAGE_Objects)
+
+
# Multihop authentication debugger
AUTH_DEBUGGER_Objects:= $(call makeObjects,auth,AuthDbg.cpp)
Modified: firebird/trunk/configure.in
===================================================================
--- firebird/trunk/configure.in 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/configure.in 2011-12-23 12:43:58 UTC (rev 53739)
@@ -43,6 +43,18 @@
AC_SUBST([$3])
])
+define([XE_SAVE_ENV], [
+pre_save_restore_cflags=$CFLAGS
+pre_save_restore_cxxflags=$CXXFLAGS
+pre_save_restore_libs=$LIBS
+])
+
+define([XE_RESTORE_ENV], [
+CFLAGS=$pre_save_restore_cflags
+CXXFLAGS=$pre_save_restore_cxxflags
+LIBS=$pre_save_restore_libs
+])
+
sinclude(acx_pthread.m4)
sinclude(binreloc.m4)
@@ -458,14 +470,11 @@
fi
dnl Find out how to use threads on this platform
-pre_acx_pthread_cflags=$CFLAGS
-pre_acx_pthread_cxxflags=$CXXFLAGS
-pre_acx_pthread_libs=$LIBS
+XE_SAVE_ENV()
ACX_PTHREAD([
AC_DEFINE(HAVE_MULTI_THREAD, 1,
[Define this if multi-threading should be supported])])
-CFLAGS=$pre_acx_pthread_cflags
-LIBS=$pre_acx_pthread_libs
+XE_RESTORE_ENV()
AC_SUBST(PTHREAD_LIBS)
AC_SUBST(PTHREAD_CFLAGS)
@@ -507,7 +516,7 @@
# not need editline in default libs, but need to test for its presence
READLINE=edit # builtin default
-saveLIBS=$LIBS
+XE_SAVE_ENV()
if test "$STD_EDITLINE" = "true"; then
AC_CHECK_LIB(edit, readline, [READLINE=edit EDITLINE_FLG=Y],
AC_CHECK_LIB(editline, readline, [READLINE=editline EDITLINE_FLG=Y],
@@ -517,7 +526,7 @@
AC_MSG_WARN([[[--with-system-editline specified, not found. Using bundled editline]]])])))
fi
fi
-LIBS=$saveLIBS
+XE_RESTORE_ENV()
AC_SUBST(READLINE)
AC_SUBST(STD_EDITLINE)
@@ -671,6 +680,14 @@
dnl setting ICU_OK here is done to only avoid default action
AC_CHECK_LIB(icuuc, main, ICU_OK=yes, AC_MSG_ERROR(ICU support not found - please install development ICU package))
+dnl check for tommath presence
+XE_SAVE_ENV()
+LIBS=
+AC_CHECK_HEADER(tommath.h,,AC_MSG_ERROR(Include file for tommath not found - please install development tommath package))
+AC_CHECK_LIB(tommath, mp_init, MATHLIB=-ltommath, AC_MSG_ERROR(Library tommath not found - please install development tommath package))
+XE_RESTORE_ENV()
+AC_SUBST(MATHLIB)
+
dnl Check for libraries
AC_SEARCH_LIBS(dlopen, dl)
AC_CHECK_LIB(m, main)
@@ -990,12 +1007,12 @@
esac
dnl Detect support for ISO syntax for thread-locals
-pre_tls_cxxflags=$CXXFLAGS
+XE_SAVE_ENV()
CXXFLAGS=$TLS_OPTIONS
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([[__thread int a = 42;]],[[a = a + 1;]])],
AC_DEFINE(HAVE___THREAD, 1, [Define it if compiler supports ISO syntax for thread-local storage]),)
-CXXFLAGS=$pre_tls_cxxflags
+XE_RESTORE_ENV()
AC_SUBST(TLS_OPTIONS)
AC_SUBST(ATOMIC_OPTIONS)
AC_SUBST(CAS_OPTIONS)
Modified: firebird/trunk/lang_helpers/gds_codes.ftn
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.ftn 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/lang_helpers/gds_codes.ftn 2011-12-23 12:43:58 UTC (rev 53739)
@@ -1468,6 +1468,8 @@
PARAMETER (GDS__ee_blr_mismatch_length = 335545027)
INTEGER*4 GDS__ss_out_of_bounds
PARAMETER (GDS__ss_out_of_bounds = 335545028)
+ INTEGER*4 GDS__missing_data_structures
+ PARAMETER (GDS__missing_data_structures = 335545029)
INTEGER*4 GDS__gfix_db_name
PARAMETER (GDS__gfix_db_name = 335740929)
INTEGER*4 GDS__gfix_invalid_sw
Modified: firebird/trunk/lang_helpers/gds_codes.pas
===================================================================
--- firebird/trunk/lang_helpers/gds_codes.pas 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/lang_helpers/gds_codes.pas 2011-12-23 12:43:58 UTC (rev 53739)
@@ -741,6 +741,7 @@
gds_ee_blr_mismatch_null = 335545026;
gds_ee_blr_mismatch_length = 335545027;
gds_ss_out_of_bounds = 335545028;
+ gds_missing_data_structures = 335545029;
gds_gfix_db_name = 335740929;
gds_gfix_invalid_sw = 335740930;
gds_gfix_incmp_sw = 335740932;
Modified: firebird/trunk/src/auth/AuthDbg.cpp
===================================================================
--- firebird/trunk/src/auth/AuthDbg.cpp 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/src/auth/AuthDbg.cpp 2011-12-23 12:43:58 UTC (rev 53739)
@@ -56,10 +56,10 @@
: str(getPool())
{ }
-Result FB_CARG DebugServer::startAuthentication(Firebird::IStatus* status, const AuthTags* tags,
- IClumplets* dpb, IWriter* writerInterface)
+Result FB_CARG DebugServer::authenticate(Firebird::IStatus* status, IServerBlock* sBlock,
+ IWriter* writerInterface)
{
- try
+/* try
{
Firebird::MasterInterfacePtr()->upgradeInterface(dpb, FB_AUTH_CLUMPLETS_VERSION, upInfo);
str.erase();
@@ -86,10 +86,10 @@
catch (const Firebird::Exception& ex)
{
ex.stuffException(status);
- return AUTH_FAILED;
- }
+ } */
+ return AUTH_FAILED;
}
-
+/*
Result FB_CARG DebugServer::contAuthentication(Firebird::IStatus* status, const unsigned char* data,
unsigned int size, IWriter* writerInterface)
{
@@ -108,16 +108,8 @@
return AUTH_FAILED;
}
}
+ */
-void FB_CARG DebugServer::getData(const unsigned char** data, unsigned short* dataSize)
-{
- *data = reinterpret_cast<const unsigned char*>(str.c_str());
- *dataSize = str.length();
-#ifdef AUTH_VERBOSE
- fprintf(stderr, "DebugServer::getData: %.*s\n", *dataSize, *data);
-#endif
-}
-
int FB_CARG DebugServer::release()
{
if (--refCounter == 0)
@@ -133,8 +125,9 @@
: str(getPool())
{ }
-Result FB_CARG DebugClient::startAuthentication(Firebird::IStatus* status, const AuthTags* tags, IClumplets* dpb)
+Result FB_CARG DebugClient::authenticate(Firebird::IStatus* status, IClientBlock* cBlock)
{
+/*
try
{
str = "HAND";
@@ -155,10 +148,11 @@
catch (const Firebird::Exception& ex)
{
ex.stuffException(status);
- return AUTH_FAILED;
}
+ */
+ return AUTH_FAILED;
}
-
+/*
Result FB_CARG DebugClient::contAuthentication(Firebird::IStatus* status, const unsigned char* data, unsigned int size)
{
try
@@ -180,16 +174,8 @@
return AUTH_FAILED;
}
}
+*/
-void FB_CARG DebugClient::getData(const unsigned char** data, unsigned short* dataSize)
-{
- *data = reinterpret_cast<const unsigned char*>(str.c_str());
- *dataSize = str.length();
-#ifdef AUTH_VERBOSE
- fprintf(stderr, "DebugClient::getData: %.*s\n", *dataSize, *data);
-#endif
-}
-
int FB_CARG DebugClient::release()
{
if (--refCounter == 0)
@@ -201,6 +187,22 @@
return 1;
}
+Result DebugServer::getSessionKey(Firebird::IStatus*,
+ const unsigned char** key, unsigned int* keyLen)
+{
+ *key = NULL;
+ *keyLen = 0;
+ return AUTH_CONTINUE;
+}
+
+Result DebugClient::getSessionKey(Firebird::IStatus*,
+ const unsigned char** key, unsigned int* keyLen)
+{
+ *key = NULL;
+ *keyLen = 0;
+ return AUTH_CONTINUE;
+}
+
} // namespace Auth
#endif // AUTH_DEBUG
Modified: firebird/trunk/src/auth/AuthDbg.h
===================================================================
--- firebird/trunk/src/auth/AuthDbg.h 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/src/auth/AuthDbg.h 2011-12-23 12:43:58 UTC (rev 53739)
@@ -34,7 +34,7 @@
#ifdef AUTH_DEBUG
-#include "../auth/AuthInterface.h"
+#include "firebird/Auth.h"
#include "../common/classes/ImplementHelper.h"
#include "../common/classes/ClumpletWriter.h"
#include "../common/classes/init.h"
@@ -51,11 +51,10 @@
public:
DebugServer(Firebird::IPluginConfig*);
- Result startAuthentication(Firebird::IStatus* status, const AuthTags* tags, IClumplets* dpb,
+ Result authenticate(Firebird::IStatus* status, IServerBlock* sBlock,
IWriter* writerInterface);
- Result contAuthentication(Firebird::IStatus* status, const unsigned char* data,
- unsigned int size, IWriter* writerInterface);
- void getData(const unsigned char** data, unsigned short* dataSize);
+ Result getSessionKey(Firebird::IStatus* status,
+ const unsigned char** key, unsigned int* keyLen);
int release();
private:
@@ -67,9 +66,9 @@
public:
DebugClient(Firebird::IPluginConfig*);
- Result startAuthentication(Firebird::IStatus* status, const AuthTags* tags, IClumplets* dpb);
- Result contAuthentication(Firebird::IStatus* status, const unsigned char* data, unsigned int size);
- void getData(const unsigned char** data, unsigned short* dataSize);
+ Result authenticate(Firebird::IStatus* status, IClientBlock* sBlock);
+ Result getSessionKey(Firebird::IStatus* status,
+ const unsigned char** key, unsigned int* keyLen);
int release();
private:
Deleted: firebird/trunk/src/auth/AuthInterface.h
===================================================================
--- firebird/trunk/src/auth/AuthInterface.h 2011-12-23 03:21:38 UTC (rev 53738)
+++ firebird/trunk/src/auth/AuthInterface.h 2011-12-23 12:43:58 UTC (rev 53739)
@@ -1,166 +0,0 @@
-/*
- * PROGRAM: Firebird authentication
- * MODULE: AuthInterface.h
- * DESCRIPTION: Interfaces, used by authentication plugins
- *
- * The contents of this file are subject to the Initial
- * Developer's Public License Version 1.0 (the "License");
- * you may not use this file except in compliance with the
- * License. You may obtain a copy of the License at
- * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
- *
- * Software distributed under the License is distributed AS IS,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied.
- * See the License for the specific language governing rights
- * and limitations under the License.
- *
- * The Original Code was created by Alex Peshkov
- * for the Firebird Open Source RDBMS project.
- *
- * Copyright (c) 2010 Alex Peshkov <peshkoff at mail.ru>
- * and all contributors signed below.
- *
- * All Rights Reserved.
- * Contributor(s): ______________________________________.
- *
- *
- */
-
-#ifndef FB_AUTH_INTERFACE
-#define FB_AUTH_INTERFACE
-
-#include "firebird/Plugin.h"
-
-namespace Firebird {
-class IStatus;
-}
-
-namespace Auth {
-
-enum Result {AUTH_SUCCESS, AUTH_CONTINUE, AUTH_FAILED, AUTH_MORE_DATA};
-
-class IWriter : public Firebird::IVersioned
-{
-public:
- virtual void FB_CARG reset() = 0;
- virtual void FB_CARG add(const char* name) = 0;
- virtual void FB_CARG setAttribute(unsigned char tag, const char* value) = 0;
-};
-#define FB_AUTH_WRITER_VERSION (FB_VERSIONED_VERSION + 3)
-
-class IClumplets : public Firebird::IVersioned
-{
-public:
- virtual int FB_CARG find(UCHAR tag) = 0;
- virtual void FB_CARG add(UCHAR tag, const void* bytes, unsigned int count) = 0;
- virtual void FB_CARG drop() = 0;
- virtual const unsigned char* FB_CARG get(unsigned int* cntPtr) = 0;
-};
-#define FB_AUTH_CLUMPLETS_VERSION (FB_VERSIONED_VERSION + 4)
-
-// This struct defines auth-related tags (including legacy ones) in parameter blocks
-struct AuthTags
-{
- UCHAR authBlock, trustedAuth, trustedRole;
- UCHAR service; // non-zero if we work with service connection
-};
-
-class IServer : public Firebird::IPluginBase
-{
-public:
- virtual Result FB_CARG startAuthentication(Firebird::IStatus* status, const AuthTags* tags, IClumplets* dpb,
- IWriter* writerInterface) = 0;
- virtual Result FB_CARG contAuthentication(Firebird::IStatus* status, const unsigned char* data,
- unsigned int size, IWriter* writerInterface) = 0;
- virtual void FB_CARG getData(const unsigned char** data, unsigned short* dataSize) = 0;
-};
-#define FB_AUTH_SERVER_VERSION (FB_PLUGIN_VERSION + 3)
-
-class IClient : public Firebird::IPluginBase
-{
-public:
- virtual Result FB_CARG startAuthentication(Firebird::IStatus* status, const AuthTags* tags, IClumplets* dpb) = 0;
- virtual Result FB_CARG contAuthentication(Firebird::IStatus* status, const unsigned char* data, unsigned int size) = 0;
- virtual void FB_CARG getData(const unsigned char** data, unsigned short* dataSize) = 0;
-};
-#define FB_AUTH_CLIENT_VERSION (FB_PLUGIN_VERSION + 3)
-
-class IUserField : public Firebird::IVersioned
-{
-public:
- virtual int FB_CARG entered() = 0;
- virtual int FB_CARG specified() = 0;
- virtual void FB_CARG setEntered(int newValue) = 0;
-};
-#define FB_AUTH_FIELD_VERSION (FB_VERSIONED_VERSION + 3)
-
-class ICharUserField : public IUserField
-{
-public:
- virtual const char* FB_CARG get() = 0;
- virtual void FB_CARG set(const char* newValue) = 0;
-};
-#define FB_AUTH_CHAR_FIELD_VERSION (FB_AUTH_FIELD_VERSION + 2)
-
-class IIntUserField : public IUserField
-{
-public:
- virtual int FB_CARG get() = 0;
- virtual void FB_CARG set(int newValue) = 0;
-};
-#define FB_AUTH_INT_FIELD_VERSION (FB_AUTH_FIELD_VERSION + 2)
-
-class IUser : public Firebird::IVersioned
-{
-public:
- virtual int FB_CARG operation() = 0;
-
- virtual ICharUserField* FB_CARG userName() = 0;
- virtual ICharUserField* FB_CARG password() = 0;
-
- virtual ICharUserField* FB_CARG firstName() = 0;
- virtual ICharUserField* FB_CARG lastName() = 0;
- virtual ICharUserField* FB_CARG middleName() = 0;
- virtual ICharUserField* FB_CARG groupName() = 0;
-
- virtual IIntUserField* FB_CARG uid() = 0;
- virtual IIntUserField* FB_CARG gid() = 0;
- virtual IIntUserField* FB_CARG admin() = 0;
-
- virtual void FB_CARG clear() = 0;
-};
-#define FB_AUTH_USER_VERSION (FB_VERSIONED_VERSION + 11)
-
-class IListUsers : public Firebird::IVersioned
-{
-public:
- virtual void FB_CARG list(IUser* user) = 0;
-};
-#define FB_AUTH_LIST_USERS_VERSION (FB_VERSIONED_VERSION + 1)
-
-class ILogonInfo : public Firebird::IVersioned
-{
-public:
- virtual const char* FB_CARG name() = 0;
- virtual const char* FB_CARG role() = 0;
- virtual int FB_CARG forceAdmin() = 0;
- virtual const char* FB_CARG networkProtocol() = 0;
- virtual const char* FB_CARG remoteAddress() = 0;
- virtual unsigned int FB_CARG authBlock(const unsigned char** bytes) = 0;
-};
-#define FB_AUTH_LOGON_INFO_VERSION (FB_VERSIONED_VERSION + 6)
-
-class IManagement : public Firebird::IPluginBase
-{
-public:
- virtual void FB_CARG start(Firebird::IStatus* status, ILogonInfo* logonInfo) = 0;
- virtual int FB_CARG execute(Firebird::IStatus* status, IUser* user, IListUsers* callback) = 0;
- virtual void FB_CARG commit(Firebird::IStatus* status) = 0;
- virtual void FB_CARG rollback(Firebird::IStatus* status) = 0;
-};
-#define FB_AUTH_MANAGE_VERSION (FB_PLUGIN_VERSION + 4)
-
-} // namespace Auth
-
-
-#endif // FB_AUTH_INTERFACE
Added: firebird/trunk/src/auth/SecureRemotePassword/BigInteger.cpp
===================================================================
--- firebird/trunk/src/auth/SecureRemotePassword/BigInteger.cpp (rev 0)
+++ firebird/trunk/src/auth/SecureRemotePassword/BigInteger.cpp 2011-12-23 12:43:58 UTC (rev 53739)
@@ -0,0 +1,212 @@
+/*
+ * PROGRAM: Firebird interface.
+ * MODULE: BigInteger.cpp
+ * DESCRIPTION: Integer of unlimited precision. Uses libtommath.
+ *
+ * The contents of this file are subject to the Initial
+ * Developer's Public License Version 1.0 (the "License");
+ * you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at
+ * http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_idpl.
+ *
+ * Software distributed under the License is distributed AS IS,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied.
+ * See the License for the specific language governing rights
+ * and limitations under the License.
+ *
+ * The Original Code was created by Alex Peshkov
+ * for the Firebird Open Source RDBMS project.
+ *
+ * Copyright (c) 2011 Alex Peshkov <peshkoff at mail.ru>
+ * and all contributors signed b...
[truncated message content] |