Changeset: 1a3a59df1dcb for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1a3a59df1dcb Modified Files: NT/installer32/cv64-32.sh NT/installer64/cv32-64.sh gdk/gdk_atoms.c sql/storage/store.c sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view1.sql sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view2.sql sql/test/pg_regress/Tests/load.SQL.sh sql/test/pg_regress/postgresql2sql99.sh testing/quicktest Branch: default Log Message:
Merge with Jan2014 branch. diffs (290 lines): diff --git a/NT/installer32/cv64-32.sh b/NT/installer32/cv64-32.sh --- a/NT/installer32/cv64-32.sh +++ b/NT/installer32/cv64-32.sh @@ -19,13 +19,13 @@ # this script is mostly to document what I did, not for regular use. cp ../installer64/*.{vdproj,sln} . -sed -i -e '/TargetPlatform/s/3:1/3:0/' \ - -e 's/win64/win32/' \ - -e 's/\[ProgramFiles64Folder\]/[ProgramFilesFolder]/' \ - -e 's/C:\\\\Program Files.*\\\\Common Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x64.msm/C:\\\\Program Files\\\\Common Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86.msm/' \ - -e 's/"ProductCode" = "8:{.*/"ProductCode" = "8:{66BABD32-D69D-4A89-A7F3-2655D4CD0641}"/' \ - -e 's/"PackageCode" = "8:{.*/"PackageCode" = "8:{D9B2D386-1461-43BC-9A63-93F1BA0D7921}"/' \ - -e 's/"UpgradeCode" = "8:{95ACBC8C-BC4B-4901-AF70-48B54A5C20F7}"/"UpgradeCode" = "8:{C1F69378-3F5C-4120-8224-32F07D3458F3}"/' \ - -e 's/"UpgradeCode" = "8:{8E6CDFDE-39B9-43D9-97B3-2440C012845C}"/"UpgradeCode" = "8:{92C89C36-0E86-45E1-B3D8-0D6C91108F30}"/' \ - -e 's/"UpgradeCode" = "8:{839D3C90-B578-41E2-A004-431440F9E899}"/"UpgradeCode" = "8:{730C595B-DBA6-48D7-94B8-A98780AC92B6}"/' \ +sed -i~ -e '/TargetPlatform/s/3:1/3:0/' \ + -e 's/win64/win32/' \ + -e 's/\[ProgramFiles64Folder\]/[ProgramFilesFolder]/' \ + -e 's/C:\\\\Program Files.*\\\\Common Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x64.msm/C:\\\\Program Files\\\\Common Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86.msm/' \ + -e 's/"ProductCode" = "8:{.*/"ProductCode" = "8:{66BABD32-D69D-4A89-A7F3-2655D4CD0641}"/' \ + -e 's/"PackageCode" = "8:{.*/"PackageCode" = "8:{D9B2D386-1461-43BC-9A63-93F1BA0D7921}"/' \ + -e 's/"UpgradeCode" = "8:{95ACBC8C-BC4B-4901-AF70-48B54A5C20F7}"/"UpgradeCode" = "8:{C1F69378-3F5C-4120-8224-32F07D3458F3}"/' \ + -e 's/"UpgradeCode" = "8:{8E6CDFDE-39B9-43D9-97B3-2440C012845C}"/"UpgradeCode" = "8:{92C89C36-0E86-45E1-B3D8-0D6C91108F30}"/' \ + -e 's/"UpgradeCode" = "8:{839D3C90-B578-41E2-A004-431440F9E899}"/"UpgradeCode" = "8:{730C595B-DBA6-48D7-94B8-A98780AC92B6}"/' \ *.vdproj diff --git a/NT/installer64/cv32-64.sh b/NT/installer64/cv32-64.sh --- a/NT/installer64/cv32-64.sh +++ b/NT/installer64/cv32-64.sh @@ -19,13 +19,13 @@ # this script is mostly to document what I did, not for regular use. cp ../installer32/*.{vdproj,sln} . -sed -i -e '/TargetPlatform/s/3:0/3:1/' \ - -e 's/win32/win64/' \ - -e 's/\[ProgramFilesFolder\]/[ProgramFiles64Folder]/' \ - -e 's/C:\\\\Program Files.*\\\\Common Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86.msm/C:\\\\Program Files\\\\Common Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86_x64.msm/' \ - -e 's/"ProductCode" = "8:{.*/"ProductCode" = "8:{ACC32EDD-13CE-4079-A6E7-D9DD94DA42EE}"/' \ - -e 's/"PackageCode" = "8:{.*/"PackageCode" = "8:{332EB6D8-73DD-48CA-83E7-BB1922FFE3BD}"/' \ - -e 's/"UpgradeCode" = "8:{C1F69378-3F5C-4120-8224-32F07D3458F3}"/"UpgradeCode" = "8:{95ACBC8C-BC4B-4901-AF70-48B54A5C20F7}"/' \ - -e 's/"UpgradeCode" = "8:{92C89C36-0E86-45E1-B3D8-0D6C91108F30}"/"UpgradeCode" = "8:{8E6CDFDE-39B9-43D9-97B3-2440C012845C}"/' \ - -e 's/"UpgradeCode" = "8:{730C595B-DBA6-48D7-94B8-A98780AC92B6}"/"UpgradeCode" = "8:{839D3C90-B578-41E2-A004-431440F9E899}"/' \ +sed -i~ -e '/TargetPlatform/s/3:0/3:1/' \ + -e 's/win32/win64/' \ + -e 's/\[ProgramFilesFolder\]/[ProgramFiles64Folder]/' \ + -e 's/C:\\\\Program Files.*\\\\Common Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86.msm/C:\\\\Program Files\\\\Common Files\\\\Merge Modules\\\\Microsoft_VC100_CRT_x86_x64.msm/' \ + -e 's/"ProductCode" = "8:{.*/"ProductCode" = "8:{ACC32EDD-13CE-4079-A6E7-D9DD94DA42EE}"/' \ + -e 's/"PackageCode" = "8:{.*/"PackageCode" = "8:{332EB6D8-73DD-48CA-83E7-BB1922FFE3BD}"/' \ + -e 's/"UpgradeCode" = "8:{C1F69378-3F5C-4120-8224-32F07D3458F3}"/"UpgradeCode" = "8:{95ACBC8C-BC4B-4901-AF70-48B54A5C20F7}"/' \ + -e 's/"UpgradeCode" = "8:{92C89C36-0E86-45E1-B3D8-0D6C91108F30}"/"UpgradeCode" = "8:{8E6CDFDE-39B9-43D9-97B3-2440C012845C}"/' \ + -e 's/"UpgradeCode" = "8:{730C595B-DBA6-48D7-94B8-A98780AC92B6}"/"UpgradeCode" = "8:{839D3C90-B578-41E2-A004-431440F9E899}"/' \ *.vdproj diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c --- a/gdk/gdk_atoms.c +++ b/gdk/gdk_atoms.c @@ -432,14 +432,6 @@ voidWrite(const void *a, stream *s, size } /* - * Windows calls strncasecmp _strnicmp, and we need it for the function below. - * Interface is the same, see http://msdn.microsoft.com/en-us/library/chd90w8e.aspx - */ -#ifdef NATIVE_WIN32 - #define strncasecmp _strnicmp -#endif - -/* * Converts string values such as TRUE/FALSE/true/false etc to 1/0/NULL. * Switched from byte-to-byte compare to library function strncasecmp, * experiments showed that library function is even slightly faster and we diff --git a/sql/storage/store.c b/sql/storage/store.c --- a/sql/storage/store.c +++ b/sql/storage/store.c @@ -3555,7 +3555,7 @@ sys_drop_table(sql_trans *tr, sql_table sql_trans_drop_dependencies(tr, t->base.id); - if (isKindOfTable(t)) + if (isKindOfTable(t) || isView(t)) sys_drop_columns(tr, t, drop_action); if (isGlobal(t)) diff --git a/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view1.sql b/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view1.sql --- a/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view1.sql +++ b/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view1.sql @@ -22,6 +22,6 @@ CREATE VIEW find_TERM_from_DOC_attribute CREATE VIEW find_TERM_from_DOC_attribute_1_RESULT_result AS SELECT ALL a1, 1-prod(1-prob) AS prob FROM find_TERM_from_DOC_attribute_1_RESULT_result_1 GROUP BY a1; -SELECT a.a1 as value, 'term' as type, a.prob FROM find_TERM_from_DOC_attribute_1_RESULT_result as a ORDER BY "prob" DESC LIMIT 50 OFFSET 0; +SELECT a.a1 as value, 'term' as type, a.prob FROM find_TERM_from_DOC_attribute_1_RESULT_result as a ORDER BY "prob" DESC, value LIMIT 50 OFFSET 0; ROLLBACK; diff --git a/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view2.sql b/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view2.sql --- a/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view2.sql +++ b/sql/test/BugTracker-2009/Tests/old_views_incorrectly_reused.SF-2863804.view2.sql @@ -22,6 +22,6 @@ CREATE VIEW find_TERM_from_DOC_attribute CREATE VIEW find_TERM_from_DOC_attribute_1_RESULT_result AS SELECT ALL a1, 1-prod(1-prob) AS prob FROM find_TERM_from_DOC_attribute_1_RESULT_result_1 GROUP BY a1; -SELECT a.a1 as value, 'term' as type, a.prob FROM find_TERM_from_DOC_attribute_1_RESULT_result as a ORDER BY "prob" DESC LIMIT 50 OFFSET 0; +SELECT a.a1 as value, 'term' as type, a.prob FROM find_TERM_from_DOC_attribute_1_RESULT_result as a ORDER BY "prob" DESC, value LIMIT 50 OFFSET 0; ROLLBACK; diff --git a/sql/test/pg_regress/Tests/load.SQL.sh b/sql/test/pg_regress/Tests/load.SQL.sh --- a/sql/test/pg_regress/Tests/load.SQL.sh +++ b/sql/test/pg_regress/Tests/load.SQL.sh @@ -7,10 +7,10 @@ Mlog "loading data with sed-foo" # don't load stud_emp, as it's the only data file with \N entries # (PostgreSQL NULL notation) sed -r \ - -e s+@abs_srcdir@+$TSTSRCBASE/$TSTDIR+ig \ + -e s+@abs_srcdir@+$TSTSRCBASE/$TSTDIR+Ig \ -e '/@abs_builddir@/d' \ -e '/DELETE FROM/d' \ - -e "s/COPY (.*);/COPY INTO \1 USING DELIMITERS '\\\\t\', '\\\\n';/i" \ + -e "s/COPY (.*);/COPY INTO \1 USING DELIMITERS '\\\\t\', '\\\\n';/I" \ -e '/stud_emp/d' \ $TSTSRCDIR/../input/copy.source \ | $SQL_CLIENT diff --git a/sql/test/pg_regress/postgresql2sql99.sh b/sql/test/pg_regress/postgresql2sql99.sh --- a/sql/test/pg_regress/postgresql2sql99.sh +++ b/sql/test/pg_regress/postgresql2sql99.sh @@ -22,74 +22,74 @@ # Note: when bug 3520 has been implemented, remove the substitution rule: -e 's/LN(/LOG(/ig' \ sed -r \ - -e 's/\bAS true/AS "true"/ig' \ - -e 's/\bAS false/AS "false"/ig' \ - -e 's/\bIS TRUE/= TRUE/ig' \ - -e 's/\bIS FALSE/= FALSE/ig' \ - -e 's/\bIS NOT TRUE/= NOT TRUE/ig' \ - -e 's/\bIS NOT FALSE/= NOT FALSE/ig' \ - -e 's/\bbool '*'\b/cast('\1' as boolean)/ig' \ - -e 's/\char 'c'/cast('c' as char)/ig' \ - -e 's/\bint2 '0'/cast('0' as smallint)/ig' \ - -e 's/\bint2 '1'/cast('1' as smallint)/ig' \ - -e 's/\bint2 '2'/cast('2' as smallint)/ig' \ - -e 's/\bint2 '4'/cast('4' as smallint)/ig' \ - -e 's/\bint2 '16'/cast('16' as smallint)/ig' \ - -e 's/\bint4 '0'/cast('0' as integer)/ig' \ - -e 's/\bint4 '1'/cast('1' as integer)/ig' \ - -e 's/\bint4 '2'/cast('2' as integer)/ig' \ - -e 's/\bint4 '4'/cast('4' as integer)/ig' \ - -e 's/\bint4 '16'/cast('16' as integer)/ig' \ - -e 's/\bint4 '999'/cast('999' as integer)/ig' \ - -e 's/\bint4 '1000'/cast('1000' as integer)/ig' \ - -e 's/\bint8 '0'/cast('0' as bigint)/ig' \ - -e 's/\bint2\b/smallint/ig' \ - -e 's/\bint4\b/integer/ig' \ - -e 's/\bint8\b/bigint/ig' \ - -e 's/\bfloat4\b/real/ig' \ - -e 's/\bfloat8\b/double/ig' \ - -e 's/\bnumeric(210,10)\b/numeric(18,10)/ig' \ - -e 's/\bfloat8 (*)/cast(\1 as double)/ig' \ - -e 's/\bbytea\b/blob/ig' \ - -e 's/\bpath\b/string/ig' \ - -e 's/\bpoint\b/string/ig' \ - -e 's/\bbox\b/string/ig' \ - -e 's/\bpolygon\b/string/ig' \ - -e 's/\bcity_budget\b/decimal(7,2)/ig' \ - -e 's/\bdate 'yesterday'/sql_sub(current_date, 24*60*60.0)/ig' \ - -e 's/\bdate 'today'/current_date/ig' \ - -e 's/\bdate 'tomorrow'/sql_add((current_date, 24*60*60.0)/ig' \ - -e 's/\bname,/string,/ig' \ - -e 's/\bname$/string/ig' \ - -e 's/LOG(numeric '10',/LOG10(/ig' \ - -e 's/LOG(/LOG10(/ig' \ - -e 's/LN(/LOG(/ig' \ - -e 's/substr(/substring(/ig' \ - -e 's/strpos(*,*)/locate(\2,\1)/ig' \ - -e 's/TRIM(BOTH FROM *)/TRIM(\1)/ig' \ - -e 's/TRIM(LEADING FROM *)/LTRIM(\1)/ig' \ - -e 's/TRIM(TRAILING FROM *)/RTRIM(\1)/ig' \ - -e 's/TRIM(BOTH * FROM *)/TRIM(replace(\2,\1,' '))/ig' \ - -e 's/\bnumeric '10'/cast('10.0' as numeric(2,0))/ig' \ - -e 's/\btext 'text'/cast('text' as text)/ig' \ - -e 's/\bchar(20) 'characters'/cast('characters' as char(20))/ig' \ - -e 's/\b!= /<> /ig' \ - -e 's/(.*)\bFROM ONLY (.*)/\1 FROM \2/ig' \ - -e 's/BEGIN TRANSACTION;/START TRANSACTION;/ig' \ - -e 's/BEGIN;/START TRANSACTION;/ig' \ - -e 's/END;/COMMIT;/ig' \ - -e 's/COMMIT TRANSACTION;/COMMIT;/ig' \ - -e 's/^COMMENT.*;$//ig' \ - -e 's/\) (INHERITS.*);/\); -- \1/ig' \ - -e 's/VACUUM ANALYZE *;/\/* VACUUM ANALYZE \1; *\//ig' \ - -e 's/alter table * alter column * set storage external;/\/* alter table \1 alter column \2 set storage external; *\//ig' \ - -e 's/SET geqo TO *;/\/* SET geqo TO \1; *\//ig' \ - -e 's/RESET geqo;/\/* RESET geqo; *\//ig' \ - -e 's/\s+([^\s]+)::float[248]\b/ cast(\1 as double)/ig' \ - -e 's/\s+([^\s]+)::int2\b/ cast(\1 as smallint)/ig' \ - -e 's/\s+([^\s]+)::int4\b/ cast(\1 as integer)/ig' \ - -e 's/\s+([^\s]+)::int8\b/ cast(\1 as bigint)/ig' \ - -e 's/\s+([^\s]+)::float4\b/ cast(\1 as real)/ig' \ - -e 's/\s+([^\s]+)::float8\b/ cast(\1 as double)/ig' \ - -e 's/\s+([^\s]+)::text\b/ cast(\1 as string)/ig' \ - -e 's/\s+([^\s]+)::(\w+(\([0-9]+(,[0-9]+))\)?)\b/ cast(\1 as \2)/ig' + -e 's/\bAS true/AS "true"/Ig' \ + -e 's/\bAS false/AS "false"/Ig' \ + -e 's/\bIS TRUE/= TRUE/Ig' \ + -e 's/\bIS FALSE/= FALSE/Ig' \ + -e 's/\bIS NOT TRUE/= NOT TRUE/Ig' \ + -e 's/\bIS NOT FALSE/= NOT FALSE/Ig' \ + -e 's/\bbool '*'\b/cast('\1' as boolean)/Ig' \ + -e 's/\char 'c'/cast('c' as char)/Ig' \ + -e 's/\bint2 '0'/cast('0' as smallint)/Ig' \ + -e 's/\bint2 '1'/cast('1' as smallint)/Ig' \ + -e 's/\bint2 '2'/cast('2' as smallint)/Ig' \ + -e 's/\bint2 '4'/cast('4' as smallint)/Ig' \ + -e 's/\bint2 '16'/cast('16' as smallint)/Ig' \ + -e 's/\bint4 '0'/cast('0' as integer)/Ig' \ + -e 's/\bint4 '1'/cast('1' as integer)/Ig' \ + -e 's/\bint4 '2'/cast('2' as integer)/Ig' \ + -e 's/\bint4 '4'/cast('4' as integer)/Ig' \ + -e 's/\bint4 '16'/cast('16' as integer)/Ig' \ + -e 's/\bint4 '999'/cast('999' as integer)/Ig' \ + -e 's/\bint4 '1000'/cast('1000' as integer)/Ig' \ + -e 's/\bint8 '0'/cast('0' as bigint)/Ig' \ + -e 's/\bint2\b/smallint/Ig' \ + -e 's/\bint4\b/integer/Ig' \ + -e 's/\bint8\b/bigint/Ig' \ + -e 's/\bfloat4\b/real/Ig' \ + -e 's/\bfloat8\b/double/Ig' \ + -e 's/\bnumeric(210,10)\b/numeric(18,10)/Ig' \ + -e 's/\bfloat8 (*)/cast(\1 as double)/Ig' \ + -e 's/\bbytea\b/blob/Ig' \ + -e 's/\bpath\b/string/Ig' \ + -e 's/\bpoint\b/string/Ig' \ + -e 's/\bbox\b/string/Ig' \ + -e 's/\bpolygon\b/string/Ig' \ + -e 's/\bcity_budget\b/decimal(7,2)/Ig' \ + -e 's/\bdate 'yesterday'/sql_sub(current_date, 24*60*60.0)/Ig' \ + -e 's/\bdate 'today'/current_date/Ig' \ + -e 's/\bdate 'tomorrow'/sql_add((current_date, 24*60*60.0)/Ig' \ + -e 's/\bname,/string,/Ig' \ + -e 's/\bname$/string/Ig' \ + -e 's/LOG(numeric '10',/LOG10(/Ig' \ + -e 's/LOG(/LOG10(/Ig' \ + -e 's/LN(/LOG(/Ig' \ + -e 's/substr(/substring(/Ig' \ + -e 's/strpos(*,*)/locate(\2,\1)/Ig' \ + -e 's/TRIM(BOTH FROM *)/TRIM(\1)/Ig' \ + -e 's/TRIM(LEADING FROM *)/LTRIM(\1)/Ig' \ + -e 's/TRIM(TRAILING FROM *)/RTRIM(\1)/Ig' \ + -e 's/TRIM(BOTH * FROM *)/TRIM(replace(\2,\1,' '))/Ig' \ + -e 's/\bnumeric '10'/cast('10.0' as numeric(2,0))/Ig' \ + -e 's/\btext 'text'/cast('text' as text)/Ig' \ + -e 's/\bchar(20) 'characters'/cast('characters' as char(20))/Ig' \ + -e 's/\b!= /<> /Ig' \ + -e 's/(.*)\bFROM ONLY (.*)/\1 FROM \2/Ig' \ + -e 's/BEGIN TRANSACTION;/START TRANSACTION;/Ig' \ + -e 's/BEGIN;/START TRANSACTION;/Ig' \ + -e 's/END;/COMMIT;/Ig' \ + -e 's/COMMIT TRANSACTION;/COMMIT;/Ig' \ + -e 's/^COMMENT.*;$//Ig' \ + -e 's/\) (INHERITS.*);/\); -- \1/Ig' \ + -e 's/VACUUM ANALYZE *;/\/* VACUUM ANALYZE \1; *\//Ig' \ + -e 's/alter table * alter column * set storage external;/\/* alter table \1 alter column \2 set storage external; *\//Ig' \ + -e 's/SET geqo TO *;/\/* SET geqo TO \1; *\//Ig' \ + -e 's/RESET geqo;/\/* RESET geqo; *\//Ig' \ + -e 's/\s+([^\s]+)::float[248]\b/ cast(\1 as double)/Ig' \ + -e 's/\s+([^\s]+)::int2\b/ cast(\1 as smallint)/Ig' \ + -e 's/\s+([^\s]+)::int4\b/ cast(\1 as integer)/Ig' \ + -e 's/\s+([^\s]+)::int8\b/ cast(\1 as bigint)/Ig' \ + -e 's/\s+([^\s]+)::float4\b/ cast(\1 as real)/Ig' \ + -e 's/\s+([^\s]+)::float8\b/ cast(\1 as double)/Ig' \ + -e 's/\s+([^\s]+)::text\b/ cast(\1 as string)/Ig' \ + -e 's/\s+([^\s]+)::(\w+(\([0-9]+(,[0-9]+))\)?)\b/ cast(\1 as \2)/Ig' diff --git a/testing/quicktest b/testing/quicktest --- a/testing/quicktest +++ b/testing/quicktest @@ -404,7 +404,7 @@ diff_result_test() { > "${tstrpath}".stdout.diff if [[ $? != 0 ]] ; then # purely estethic - sed -i \ + sed -i~ \ -e "/^--- /s:${tstspath}\.stable\.out:${tstn}.stable.out:" \ -e "/^+++ /s:${tstrpath}\.stdout:${tstn}.test.out:" \ "${tstrpath}".stdout.diff @@ -415,7 +415,7 @@ diff_result_test() { > "${tstrpath}".stderr.diff if [[ $? != 0 ]] ; then # purely estethic - sed -i \ + sed -i~ \ -e "/^--- /s:${tstspath}\.stable\.err:${tstn}.stable.err:" \ -e "/^+++ /s:${tstrpath}\.stderr:${tstn}.test.err:" \ "${tstrpath}".stderr.diff _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list